Escolar Documentos
Profissional Documentos
Cultura Documentos
Los lenguajes de Programacin son el corazn de la Ciencia de la Computacin. Son herramientas que usamos para comunicarnos con las mquinas y tambin con las personas.
CUAL ES LA IDEA?
Introducimos analizamos y e!aluamos los conceptos ms importantes de los lenguajes de programacin. Premisa !el "alor de un lenguaje o de un concepto se de#e ju$gar seg%n la &orma en 'ue a"ecta la produccin de So&t(are y a la &acilidad con la 'ue puede integrarse a otras )erramientas*
3
+U, C-.SE/UI0E1-S Ad'uirir )a#ilidad de apreciar y e!aluar lenguajes2 identi&icando los conceptos ms importantes de cada uno de ellos y sus l#mites y posibilidades 3a#ilidad para elegir para dise$ar implementar o utilizar un lenguaje En&ati$ar la abstraccin como la mejor &orma de manejar la complejidad de o#jetos y &enmenos
4
PA0A +U, ES4UDIA0 C-.CEP4-S DE LE./UA5ES 6 Aumentar la capacidad para producir so&t. 6 1ejorar el uso del lenguaje 6 Incrementar el "oca#ulario 6 Elegir mejor un lenguaje 6 7acilitar el aprendi$aje de nue"os lenguajes 6 7acilitar el dise8o e implementacin de lenguajes
5
C%I&'%I(S P)%) '*)L+)% L(S L',-+).'S /' P%(-%)0)CI(, Para poder evaluar los lenguajes necesitamos
establecer criterios de evaluacin. Objetivos de diseo:
Simplicidad y legibilidad laridad en los bindings on!iabilidad Soporte "bstraccin #rtogonalidad $!iciencia
Sint9is y Semntica
Un lenguaje de programacin es una notacin &ormal para descri#ir algoritmos a ser ejecutados en una computadora Lenguaje de programacin
Sinta9is Semntica
Sint9is y Semntica
/e"iniciones.
Sint9is Conjunto de reglas 'ue de&inen como componer letras2 d:gitos y otros caracteres para &ormar los programas Semntica Conjunto de reglas para dar signi&icado a los programas sintcticamente "lidos.
v% array &1..1'( o! integer) y ******** en Pascal
Sint9is y Semntica
La de&inicin de la sint9is y la semntica de un lenguaje de programacin proporcionan mecanismos para 'ue una persona o una computadora pueda decir
Sint9is
Caracter#sticas de la sint1is
La sint9is de#e ayudar al programador a escri#ir programas correctos sintcticamente La sint9is esta#lecen reglas 'ue sir"en para 'ue el programador se comuni'ue con el procesador La sint9is de#e contemplar soluciones a caracter:sitcas tales como
Sint9is
Caracter#sticas de la sint1is
La sint9is de#e ayudar al programador a escri#ir programas correctos sintcticamente La sint9is esta#lecen reglas 'ue sir"en para 'ue el programador se comuni'ue con el procesador La sint9is de#e contemplar soluciones a caracter:sitcas tales como
Sint9is
La sint9is esta#lece reglas 'ue de&inen cmo de#en com#inarse las componentes #sicas2 llamadas 23ord42 para &ormar sentencias y programas.
'lementos de la sint1is
Al&a#eto o conjunto de caracteres Identi&icadores -peradores Pala#ra cla"e y pala#ra reser"ada Comentarios y uso de #lancos
'structura sintctica
Sint9is
*ocabulario o 3ords
Conjunto de caracteres y pala#ras necesarias para construir e9presiones2 sentencias y programas. Ej identi&icadores2 operadores2 pala#ras cla"es2 etc. Las (ords no son elementales se construyen a partir del al&a#eto
'1presiones
Son &unciones 'ue a partir de un conjunto de datos de"uel"en un resultado. Son #lo'ues sintcticos #sicos a partir de los cuales se construyen las sentencias y programas Componente sintctico ms importante. 4iene un &uerte impacto en la &acilidad de escritura y legi#ilidad 3ay sentencias simples2 estructuradas y anidadas.
Sentencias
Sint9is
0eglas l<9icas Conjunto de reglas para &ormar las 23ord42 a partir de los caracteres del al&a#eto 0eglas sintcticas Conjunto de reglas 'ue de&inen como &ormar las 2e1presiones4 y 2sentencias4
$l -! en no lleva ./t0en//1 en Pascal si
La di&erencia entre l<9ico y sintctico es ar#itrario2 dan la apariencia e9terna del lenguaje
Sint9is
0eglas l<9icas Conjunto de reglas para &ormar las 23ord42 a partir de los caracteres del al&a#eto 0eglas sintcticas Conjunto de reglas 'ue de&inen como &ormar las 2e1presiones4 y 2sentencias4
$l -! en no lleva ./t0en//1 en Pascal si
La di&erencia entre l<9ico y sintctico es ar#itrario2 dan la apariencia e9terna del lenguaje
&ipos de Sint1is
Sint9is
)5S&%)C&)
Se re&iere #sicamente a la estructura Se re&iere #sicamente a la parte l<9ica Se re&iere #sicamente al uso prctico
C(,C%'&)
P%)-06&IC)
Sint9is
Son di&erentes respecto a la sint1is concreta2 por'ue e9isten di&erencias l<9icas entre ellas Son iguales respecto a la sint1is abstracta2 ya 'ue am#as tienen la misma estructura
()ile condicin #lo'ue
Sint9is
'j@. 8'n C y Pascal AB o beginCend pueden omitirse si el bloque esta compuesto por una sola En Modula: sentencia If x=y then 8 -------3hile 91>?y: 1?yD; 8Pragmticamente puede conducir a error ya
end
'ue si se necesitara agregar una sentencia de#e agregarse el #egin end o las EG.
Sint9is
Se necesita una descripcin &inita para de&inir un conjunto in&inito =conjunto de todos los programas #ien escritos> 7ormas para de&inir la sinta9is
Lenguaje natural. Ej. 7ortran Utili$ando la gramtica li#re de conte9to2 de&inida por IacJus y .aun I.7. Ej Algol Diagramas sintcticos son e'ui"alentes a I.7 pero muc)o mas intuiti"os
Sint9is
<
77?
De&ine las reglas por medio de !producciones* Ejemplo < digito = 77? KLMLNLOLPLQLRLSLTLU
-ramtica
Sint9is
Conjunto de reglas &inita 'ue de&ine un conjunto in&inito de posi#les sentencias "lidas en el lenguaje. Una gramtica esta &ormada por una PFtupla - ? 9 , & S P:
Conjunto de producciones Conjunto de s:m#olos terminales S:m#olo distinguido de la gramtica 'ue pertenece a .
6rboles sintcticos
Sint9is
!5uan el un manta* Es una oracin sintcticamente incorrecta .o todas las oraciones 'ue se pueden armar con los terminales son "lidas Se necesita de un 0todo de anlisis 9reconocimiento: 'ue permita determinar si un string dado es "alido o no en el lenguaje Parsing. El parse para cada sentencia construye un 2rbol sintctico o rbol de deri!acin4
Sint9is
0todo bottonCup
De i$'uierda a derec)a De derec)a a i$'uierda De i$'uierda a derec)a De derec)a a i$'uierda
0todo topCdo3
6rbol de deri!acin7
Ejemplo topFdo(n de i$'uierda a derec)a CoracinD BD CsujetoDCpredicadoD BD 5uan CpredicadoD BD 5uan C"er#oDCo#jetoD BD 5uan compra Co#jetoD BD 5uan compra artDCsustanD BD 5uan compra un CsustanD
Sint9is
BD 5uan compra un perro Los compiladores utili$an el parse cannico 'ue es el #ottomFup de i$'uierda a derec)a
Producciones recursi!as7
Son las 'ue )acen 'ue el conjunto de sentencias descripto sea in&inito Ejemplo de producciones recursi"as CnaturalD B CdigitoD L CdigitoDCdigitoD L ....... L CdigitoD..............CdigitoD Si lo planteamos recursi"amente
Sint9is
/. B = .2 42 S2 P> . B E CnaturalD2 CdigitoD GV4 B E K2 M2 N2 O2 P2 Q2 R2 S2 T2 U GV S B CnaturalD P B ECnaturalD B CdigitoD L CdigitoD CnaturalD2 CdigitoD B K L M L N L O L P L Q L R L S L T L UG
Cual'uier gramtica 'ue tiene una produccin recursi"a descri#e un lenguaje in"inito.
Producciones recursi!as7
Sint9is
La asociati"idad es por la i$'uierda El s:m#olo no terminal de la parte i$'uierda de una regla de produccin aparece al comien$o de la parte derec)a La asociati"idad es por la derec)a El s:m#olo no terminal de la parte i$'uierda de una regla de produccin aparece al &inal de la parte derec)a
-ramticas ambiguas7
Sint9is
Una gramtica es am#igua si una sentencia puede deri"arse de mas de una &orma
/B = .2 42 S2 P> V. B E CidD2 Ce9pD2 CasigDG V4 B E A2I2C2 W2X2F2Y2 BG VS B CasigD VPM B E CasigD B CidD B Ce9pD Ce9pD B Ce9pDWCe9pDLCe9pDXCe9pDLCe9pDF Ce9pDL Ce9pDY Ce9pDLCidD CidD B A L I L C recursin G
Subgramticas7
Sint9is
V. B E CidD2 CletraD2 CdigitoD2 CotroDG V4 B E A2 ................2 Z2 K2 ........2 MG VS B CidD VP B E CidD B CletraD L CletraDCotroD2 CotroD B CletraD L CdigitoD L CletraDCotroD L CdigitoDCotroD2 V CletraD B A L I L C L .............L Z CdigitoD B K L M L N L LU G
Para de&inir la gramtica /E2 de e9presiones2 se puede utili$ar la gramtica de n%meros y de identi&icadores. /E se de&ir:a utili$ando las subgramticas /. y /I V*La &iloso&:a de composicin es la &orma en 'ue tra#ajan los compiladores*
Sint9is
Seg%n nuestra gramtica son sentencias sintcticamente "lidas2 aun'ue puede suceder 'ue a "eces no lo sea semnticamente.
Una gramtica li#re de conte9to es a'uella en la 'ue no reali$a un anlisis del conte9to. Una gramtica sensi#le al conte9to anali$a este tipo de cosas. =Algol RT>.
Sint9is
'5,E. Esta gramtica es la 5,E e1tendida Los metasim#olos 'ue incorporados son
8 H I elemento optati!o puede o no estar 8 9G: seleccin de una alternati!a 8 AB repeticin J K o mas !eces D una o mas !eces
Sint9is
Sint9is
Es un gra&o sintctico o carta sintctica Cada diagrama tiene una entrada y una salida2 y el camino determina el anlisis. Cada diagrama representa una regla o produccin Para 'ue una sentencia sea "lida2 de#e )a#er una camino desde la entrada )asta la salida 'ue la descri#a. Se "isuali$a y entiende mejor 'ue I.7 o EI.7
Sint9is
Sint9is
nTmero
'jemplos7
K ; @ N O P Q R S S
d#gito
d#gito
identi"icador letra letra secuencia letra d#gito letra d#gito Programa A Sentencia B secuencia secuencia