Você está na página 1de 34

Conceptos y Paradigmas de Lenguajes de Programacin

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

int v&1'() ***************************** en

Sint9is y Semntica

;Cul es la utilidad de de&inir y conocer la sint9is y la semntica de un lenguaje? ;+ui<nes se #ene&ician?


Programadores Implementador =Compilador>

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

Si el programa es "lido y Si lo es2 'u< signi&ica

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

Legi#ilidad ?eri&ica#ilidad 4raduccin 7alta de am#ig@edad

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

Legi#ilidad ?eri&ica#ilidad 4raduccin 7alta de am#ig@edad

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

%eglas l1icas y sintcticas.


+i!erencias entre may,sculas y min,sculas

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

6S:m#olo de distinto. En C AB en Pascal CD

La di&erencia entre l<9ico y sintctico es ar#itrario2 dan la apariencia e9terna del lenguaje

%eglas l1icas y sintcticas.


+i!erencias entre may,sculas y min,sculas

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

6S:m#olo de distinto. En C AB en Pascal CD

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)

'jemplo de sint1is concreta y abstracta7.


()ile =9AB y> Uso de par<ntesis E FFFFFFFFFFF 7orma de GH encerrar un 9'n C: #lo'ue

Sint9is

()ile 9CDy do #egin FFFFFFFF S:m#olo de distinto end 8 9'n Pascal:

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

'jemplo de sint1is pragmtica7.


8 'j;. <= es mas legible que >?

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

Cmo de"inir la sint1is

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

5,E 95acFus ,aun Eorm:


Es una notacin &ormal para descri#ir la sinta9is Es un metalenguaje Utili$a metas:m#olos

<

77?

De&ine las reglas por medio de !producciones* Ejemplo < digito = 77? KLMLNLOLPLQLRLSLTLU

,o terminal Se de&ine como &erminales8 0etas#mblo

-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 .

Conjunto de V s:m#olos no terminales

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

6rboles sintcticos Dos maneras de construirlo

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

Ejemplo r#ol sintctico de !oracin*. 4opFdo(n de i$'uierda a derec)a


CoracinD CsujetoD CpredicadoD C"er#oD Co#jetoD 5uan V compra CartD un Cnom#reD perro V

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

0egla recursi"a por la i$'uierda


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

0egla recursi"a por la 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

Sea la gramtica para identi&icadores /I B = .2 42 S2 P>

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*

-ramticas libres de conte1to sensibles al conte1to 7 int eH a B # W cH

Sint9is

Seg%n nuestra gramtica son sentencias sintcticamente "lidas2 aun'ue puede suceder 'ue a "eces no lo sea semnticamente.

El identi&icador est de&inido dos "eces .o son del mismo tipo

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>.

(tras "ormas de describir la sinta1is libres de conte1to7


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

'jemplo con '5,E7


De&inicin n%meros enteros en I.7 y en EI.7 85,E CenterosigD B W CenteroD L F CenteroD L CenteroD CenteroD B CdigitoDL CenteroDCdigitoD '5,E CenterosigD B H=WLF>I CdigitoDECdigitoDGX
0ecursin

Sint9is

'limin la recursin y es mas "cil de entender

/iagramas sintcticos 9C(,L)M:7


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

/iagramas sintcticos 9C(,L)M:7


&erminales Elujo ,o terminales %epeticin Seleccin 'j7
Programa A Sentencia B

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

Você também pode gostar