Presentación de PowerPoint -...

18

Transcript of Presentación de PowerPoint -...

Page 1: Presentación de PowerPoint - eafranco.comeafranco.com/docencia/compiladores/files/15_Lenguajes_y_gramaticas... · •Si A es la regla de derivación aplicada a la cadena uAv, ...
Page 2: Presentación de PowerPoint - eafranco.comeafranco.com/docencia/compiladores/files/15_Lenguajes_y_gramaticas... · •Si A es la regla de derivación aplicada a la cadena uAv, ...

Contenido •Derivaciones

•Árbol de derivación

•Gramáticas libres de contexto

•Ambigüedad en gramáticas

•Ejemplo

•Eliminar ambigüedad

•Mapa Conceptual 03

Compiladores (Lenguajes y gramáticas II - Edgardo A. Franco)

15 Lenguajes y gramáticas III Compiladores - Profr. Edgardo Adrián Franco Martínez

2

Page 3: Presentación de PowerPoint - eafranco.comeafranco.com/docencia/compiladores/files/15_Lenguajes_y_gramaticas... · •Si A es la regla de derivación aplicada a la cadena uAv, ...

Derivaciones

• Derivación por la izquierda: las reglas de reemplazo

son aplicadas a la primera variable de izquierda a

derecha.

• Derivación por la derecha: las reglas de reemplazo son

aplicadas a la última variable de izquierda a derecha.

Compiladores (Lenguajes y gramáticas II - Edgardo A. Franco) 3

15 Lenguajes y gramáticas III Compiladores - Profr. Edgardo Adrián Franco Martínez

3

Page 4: Presentación de PowerPoint - eafranco.comeafranco.com/docencia/compiladores/files/15_Lenguajes_y_gramaticas... · •Si A es la regla de derivación aplicada a la cadena uAv, ...

Compiladores (Lenguajes y gramáticas II - Edgardo A. Franco) 4

Derivaciones

15 Lenguajes y gramáticas III Compiladores - Profr. Edgardo Adrián Franco Martínez

4

Page 5: Presentación de PowerPoint - eafranco.comeafranco.com/docencia/compiladores/files/15_Lenguajes_y_gramaticas... · •Si A es la regla de derivación aplicada a la cadena uAv, ...

Derivaciones

• P.g: G = (VN,VT, S, P)

VN= {S, A, a, b}

VT = {a, b}

P: S AA A AAA | bA | Ab | a

• En esta gramática existen, por lo menos cuatro derivaciones de la palabra ababaa.

Compiladores (Lenguajes y gramáticas II - Edgardo A. Franco) 5

15 Lenguajes y gramáticas III Compiladores - Profr. Edgardo Adrián Franco Martínez

5

Page 6: Presentación de PowerPoint - eafranco.comeafranco.com/docencia/compiladores/files/15_Lenguajes_y_gramaticas... · •Si A es la regla de derivación aplicada a la cadena uAv, ...

Derivaciones de ababaa

aA AAAA Aa aA

aAAA aAAA AAAa aAAA

abAAA abAAA AAbAa aAAa

abaAA abaAA AAbaa abAAa

ababAA ababAA AbAbaa abAbAa

ababaA ababaA Ababaa ababAa

ababaa ababaa ababaa ababaa

S AA S AA S AA S AA

Compiladores (Lenguajes y gramáticas II - Edgardo A. Franco) 6

15 Lenguajes y gramáticas III Compiladores - Profr. Edgardo Adrián Franco Martínez

6

Page 7: Presentación de PowerPoint - eafranco.comeafranco.com/docencia/compiladores/files/15_Lenguajes_y_gramaticas... · •Si A es la regla de derivación aplicada a la cadena uAv, ...

Árbol de derivación • Un árbol de derivación permite mostrar gráficamente cómo se

puede derivar cualquier cadena de un lenguaje a partir del símbolo

inicial de una gramática que genera ese lenguaje.

• Un árbol es un conjunto de puntos, llamados nodos, unidos por

líneas, llamadas arcos. Un arco conecta dos nodos distintos. Para ser

un árbol un conjunto de nodos y arcos debe satisfacer ciertas

propiedades:

• El nodo raíz está rotulado con el símbolo inicial de la gramática.

• Cada hoja corresponde a un símbolo terminal.

• Cada nodo interior corresponde a un símbolo no terminal.

Compiladores (Lenguajes y gramáticas II - Edgardo A. Franco) 7

15 Lenguajes y gramáticas III Compiladores - Profr. Edgardo Adrián Franco Martínez

7

Page 8: Presentación de PowerPoint - eafranco.comeafranco.com/docencia/compiladores/files/15_Lenguajes_y_gramaticas... · •Si A es la regla de derivación aplicada a la cadena uAv, ...

Árbol de derivación

• Para una derivación su árbol de derivación

(parse tree) se construye de la siguiente manera:

• Inicializar el AD con la raíz S.

• Si A x1x2...xn (con xi V) es la regla de derivación aplicada a la

cadena uAv, entonces añadir x1, x2, ..., xn como los hijos de A en el

árbol.

• Si A es la regla de derivación aplicada a la cadena uAv,

entonces añadir como hijo único de A en el árbol.

• Al árbol de derivación también se le llama árbol de

análisis o árbol de análisis gramatical o árbol de análisis

sintáctico.

wS G

*

Compiladores (Lenguajes y gramáticas II - Edgardo A. Franco) 8

15 Lenguajes y gramáticas III Compiladores - Profr. Edgardo Adrián Franco Martínez

8

Page 9: Presentación de PowerPoint - eafranco.comeafranco.com/docencia/compiladores/files/15_Lenguajes_y_gramaticas... · •Si A es la regla de derivación aplicada a la cadena uAv, ...

• El orden de las hojas también sigue el proceso iterativo de

construcción del árbol:

• Inicialmente sólo hay la hoja S y el orden es obvio.

• Al utilizar la regla A x1x2...xn, cada xi se convierte en hoja y en

el orden de las hojas A se reemplaza por x1, x2, ...,xn.

• Al utilizar la regla A , simplemente se reemplaza A por .

• La cadena de caracteres terminales que se obtiene al

recorrer las hojas en orden se llama el producto del árbol.

Compiladores (Lenguajes y gramáticas II - Edgardo A. Franco)

Árbol de derivación

15 Lenguajes y gramáticas III Compiladores - Profr. Edgardo Adrián Franco Martínez

9

Page 10: Presentación de PowerPoint - eafranco.comeafranco.com/docencia/compiladores/files/15_Lenguajes_y_gramaticas... · •Si A es la regla de derivación aplicada a la cadena uAv, ...

Compiladores (Lenguajes y gramáticas II - Edgardo A. Franco) 10

Árbol de derivación

15 Lenguajes y gramáticas III Compiladores - Profr. Edgardo Adrián Franco Martínez

10

EDbC

CbaD

Cb

D a

DCaD

E

D b C

b C a D

a b

G=(VT,VN,E,P)

VT={a,b,c}

VN={E,C,D}

Page 11: Presentación de PowerPoint - eafranco.comeafranco.com/docencia/compiladores/files/15_Lenguajes_y_gramaticas... · •Si A es la regla de derivación aplicada a la cadena uAv, ...

Compiladores (Lenguajes y gramáticas II - Edgardo A. Franco) 11

Árbol de derivación Para una derivación dada, el símbolo inicial “S” etiqueta la

raíz del árbol. El nodo raíz tienen unos nodos hijos para cada símbolo que aparezca en el lado derecho de la producción, usada para reemplazar el símbolo inicial. De igual forma, cada símbolo no terminal tienen unos nodos hijos etiquetados con símbolos del lado derecho de la producción usada para sustituir ese no terminal.

P.g. Sea la gramática G dada por: S → AB

A → aA|a B → bB|b

La cadena aabbb tienen la siguiente derivación:

S => AB => AbB => AbbB => Abbb => aAbbb => aabbb

15 Lenguajes y gramáticas III Compiladores - Profr. Edgardo Adrián Franco Martínez

11

Page 12: Presentación de PowerPoint - eafranco.comeafranco.com/docencia/compiladores/files/15_Lenguajes_y_gramaticas... · •Si A es la regla de derivación aplicada a la cadena uAv, ...

Compiladores (Lenguajes y gramáticas II - Edgardo A. Franco) 12

Árbol de derivación

La cadena aabbb tienen la siguiente derivación:

S => AB => AbB => AbbB => Abbb => aAbbb => aabbb

15 Lenguajes y gramáticas III Compiladores - Profr. Edgardo Adrián Franco Martínez

12

12

E

A B

b B

b B

b

a A

a

Page 13: Presentación de PowerPoint - eafranco.comeafranco.com/docencia/compiladores/files/15_Lenguajes_y_gramaticas... · •Si A es la regla de derivación aplicada a la cadena uAv, ...

Compiladores (Lenguajes y gramáticas II - Edgardo A. Franco) 13

Ambigüedad en gramáticas

Considérese la gramática: S → SbS | ScS | a

1. S => SbS => SbScS => SbSca => Sbaca => abaca

2. S => ScS => SbScS => abScS => abacS => abaca

15 Lenguajes y gramáticas III Compiladores - Profr. Edgardo Adrián Franco Martínez

13

E

S S

c a

a

b

S S

a

Derivación 1

E

S S

b a

a

c

S S

a

Derivación 2 Para una misma cadena,

se obtuvieron árboles de

derivación distintos

Page 14: Presentación de PowerPoint - eafranco.comeafranco.com/docencia/compiladores/files/15_Lenguajes_y_gramaticas... · •Si A es la regla de derivación aplicada a la cadena uAv, ...

Ambigüedad en gramáticas

Se dirá que una gramática es "ambigua" cuando

hay dos o más arboles de derivación para una

misma cadena.

15 Lenguajes y gramáticas III Compiladores - Profr. Edgardo Adrián Franco Martínez

14

Page 15: Presentación de PowerPoint - eafranco.comeafranco.com/docencia/compiladores/files/15_Lenguajes_y_gramaticas... · •Si A es la regla de derivación aplicada a la cadena uAv, ...

Ambigüedad en gramáticas (Definición)

• Una gramática es ambigua si existe una cadena w L(G) que tiene más de una derivación por la izquierda o más de una derivación por la derecha o si tiene dos o más árboles de derivación. • En caso de que toda cadena w L(G) tenga un único árbol de derivación, la gramática

es no ambigua.

• P.g: la gramática S aS | Sa | a es ambigua porque aa tiene dos derivaciones por la izquierda

S aS aa S Sa aa

• Esta gramática genera el lenguaje a+ que también es el lenguaje generado por la gramática no ambigua S aS | a.

S

a S

a

S

S a

a

Compiladores (Lenguajes y gramáticas II - Edgardo A. Franco) 15

15 Lenguajes y gramáticas III Compiladores - Profr. Edgardo Adrián Franco Martínez

15

Page 16: Presentación de PowerPoint - eafranco.comeafranco.com/docencia/compiladores/files/15_Lenguajes_y_gramaticas... · •Si A es la regla de derivación aplicada a la cadena uAv, ...

Otro ejemplo ambiguo • La gramática para expresiones aritméticas sobre las variables x y y:

• E E + E

• E E E

• E x

• E y

es ambigua porque la cadena x + y x tiene dos árboles de

derivación:

• La ambigüedad puede producir serios problemas en lenguajes cuyo significado depende,

en parte, de su estructura, como es el caso de los lenguajes naturales y los de

programación:

• Árbol izquierdo representa (x + y) x y el de la derecha representa x + (y x).

E

E E

x + y x

E

E E +

x * y x Compiladores (Lenguajes y gramáticas II - Edgardo A. Franco)

16

15 Lenguajes y gramáticas III Compiladores - Profr. Edgardo Adrián Franco Martínez

16

Page 17: Presentación de PowerPoint - eafranco.comeafranco.com/docencia/compiladores/files/15_Lenguajes_y_gramaticas... · •Si A es la regla de derivación aplicada a la cadena uAv, ...

Eliminar ambigüedad

• En algunos casos, la ambigüedad de una gramática se puede eliminar utilizando nuevas variables que eliminen los árboles de derivación no deseados.

• En el ejemplo de los operadores aritméticos, además de la variable E, que representa expresiones, también se utilizan las variables F para factores y T para términos y se tienen las siguientes reglas:

• E E + T E T

• T T F T F

• F (E) F x

• F y

• Existen lenguajes inherentemente ambiguos para los que no existe una gramática no ambigua equivalente. P.g: L = {anbncmdm} {anbmcmdn}, n 1, m 1.

Compiladores (Lenguajes y gramáticas II - Edgardo A. Franco)

17

15 Lenguajes y gramáticas III Compiladores - Profr. Edgardo Adrián Franco Martínez

17

Page 18: Presentación de PowerPoint - eafranco.comeafranco.com/docencia/compiladores/files/15_Lenguajes_y_gramaticas... · •Si A es la regla de derivación aplicada a la cadena uAv, ...

Mapa Conceptual 03

Observaciones Realizar un mapa conceptual de las clases 13,14 & 15

(Lenguajes y gramáticas).

Fecha de entrega Entregar en formato digital vía Web, con el titulo "Mapa

Conceptual 03" a más tardar el día viernes 08 de abril de

2011.

15 Lenguajes y gramáticas III Compiladores - Profr. Edgardo Adrián Franco Martínez

18