La descarga está en progreso. Por favor, espere

La descarga está en progreso. Por favor, espere

ÁRBOLES DE SINTAXIS ÁRBOL grafo dirigido acíclico. Los nodos no terminales (nodos interiores) están rotulados por los símbolos no terminales. Los nodos.

Presentaciones similares


Presentación del tema: "ÁRBOLES DE SINTAXIS ÁRBOL grafo dirigido acíclico. Los nodos no terminales (nodos interiores) están rotulados por los símbolos no terminales. Los nodos."— Transcripción de la presentación:

1 ÁRBOLES DE SINTAXIS ÁRBOL grafo dirigido acíclico. Los nodos no terminales (nodos interiores) están rotulados por los símbolos no terminales. Los nodos terminales (nodos hojas) están rotulados por los símbolos terminales. Las reglas de producción de la gramática relacionan cada nodo no terminal y sus hijos.

2 Árbol de sintaxis de una oración Oración Sujeto the see Verbo I Sustantivo Objeto cat.

3 Sea G una gramática libre de contexto un árbol de sintaxis de G es un árbol rotulado y ordenado, con las siguientes propiedades: para cualquier símbolo no terminal N de G, un N-árbol tiene un nodo raíz rotulado por N. Sus subárboles pueden ser un X 1 -árbol,......, X n -árbol (de izquierda a derecha) solamente si N::= X X n es una regla de producción de G. (si la regla de producción es N::=, el N-árbol no tiene subárboles Para cualquier símbolo terminal t de G, un t-árbol es un único nodo terminal rotulado por t.

4 Ejemplo 1) Dada la regla de producción Número ::= Dígito | Número Dígito Un número-árbol posible es Número Dígito 4 0

5 Ejemplo 2) Dado el comando 3*9= y teniendo en cuenta las reglas de producción para formar comandos y expresiones (Ejemplo de la calculadora), el árbol de sintaxis correspondiente es: Comando Expresión Número 39= * Dígito

6 FRASES, SENTENCIAS y LENGUAJ E Sea G una Gramática Libre de Contexto. Una frase de G es una cadena de símbolos terminales, los que forman una N-frase de G para cada símbolo no terminal N de G. Una sentencia de G, es una S-frase de G, donde S es el símbolo de partida de G. El lenguaje generado por G, es el conjunto de todas las sentencias de G.

7 Por ejemplo : I see the cat. es una Sentencia-frase de G. I es un Sujeto-frase see es un Verbo-frase the cat es un Objeto-frase. I, see y the cat son cadenas de símbolos terminales.

8 En el ejemplo de la Calculadora: 3, 40 y 365 son Numeros-frases 3*9 y 40-3*9 son Expresiones-frases 3*9= y 40-3*9= son Comandos-frases

9 INTERPRETACIÓN DE LOS ÁRBOLES DE SINTAXIS Los árboles de sintaxis pueden ser usados para darle un significado a la sentencia, aplicando algún tipo de interpretación de semántica al mismo. Sea el comando ' * 9 = ' en el ejemplo de la calculadora Comando Expresión Número 403* Número - 9 Expresión = Este árbol sugiere que el comando se calculará como: (40-3)*9 =

10 AMBIGÜEDAD El siguiente ejemplo muestra que una gramática diseñada sin cuidado puede ser ambigua con respecto a alguna sentencia. Ejemplo: consideremos una variación de la regla de producción de la gramática G para Expresión en el ejemplo de la calculadora: Expresión ::= Número | Expresión + Expresión | Expresión - Expresión | Expresión * Expresión y mantenemos las otras reglas de producción.

11 La gramática G resulta ambigua con respecto a algunas de las expresiones como por ejemplo, la expresión " " puesto que ésta se corresponde con dos árboles de sintaxis diferentes. Expresión Número Expresión NúmeroExpresión Número Expresión Número Expresión Número Expresión Número Interpretación: (40 - 3) (3 - 9)

12 Ejemplo 2 Sea la siguiente regla de producción en el lenguaje de programación L. Com ::= Var:=Expr | if Expr then Com | if Expr then Com else Com donde: Com nombra la clase de comandos. E y E expresiones arbitrarias y C y C comandos arbitrarios (tales como asignaciones). Luego el comando if E then if E then C else C es ambiguo

13 Árboles de sintaxis para Com Com thenif E Expr Com thenCEelse Expr Com C thenif E Expr Com thenCEelse Expr Com C

14 RECONOCIMIENTO y ANÁLISIS SINTÁCTICO El RECONOCIMIENTO de una cadena terminal en una gramática G es decidir si la cadena es o no una sentencia de G, de acuerdo a las reglas de G. El ANÁLISIS SINTÁCTICO o "parsing" de una cadena terminal, en una gramática G es el reconocimiento más la reconstrucción del(los) árbol(es) de sintaxis de la cadena, de acuerdo a las reglas de G. El análisis sintáctico es necesario para deducir cada estructura de frase de la sentencia y luego determinar su significado.

15 Ejemplo: Consideremos las reglas de la gramática del ejemplo de la calculadora: Expresión = Comando (a) Número Expresión Número+ Expresión Número * Expresión Número - Expresión (c)(b) (e)(d)

16 Analizaremos la cadena terminal: * 9 = (1) 40, 3 y 9 son Número -frases Número 4039 Número * - =

17 (2) Hacemos corresponder el número 40con el fragmento del árbol (b) Número 4039 Número * - = Expresión 3) El fragmento de árbol (b), el terminal - y el número 3, podemos corresponderlos con el fragmento de árbol (d) Número Número * - = Expresión

18 (4) El último fragmento de árbol, el terminal * y el número 9, podemos corresponderlos con el fragmento del árbol (e): Expresión Número 403 * Número - 9 Expresión

19 Comando (5) El último fragmento del árbol y el terminal =, podemos corresponderlos con el fragmento de árbol (a) Comando Expresión Número 40 3 * Número - 9 Expresión =

20 AUTOINCLUSIÓN (Anidamiento) Las gramáticas Libres de Contexto son muy efectivas para especificar estructuras de frases anidadas (self-embedded) Ejemplo: Pascal tiene: (a) expresiones anidadas: a - (b + c) sin (2 * x) (b) comandos anidados: if a > b then m := a else m := b begin x := 0; y := 0 end

21 Una gramática libre de contexto G es anidada si, para algunos símbolos no terminales N de G, existe una N-frase tal que es también una N-frase y tal que tanto como son cadenas terminales no vacías. El anidamiento Recursividad en las Reglas de producción Por ejemplo: Com::= Var:= Expr | if Expr then Com | if Expr then Com else Com Es una regla recursiva.

22

23


Descargar ppt "ÁRBOLES DE SINTAXIS ÁRBOL grafo dirigido acíclico. Los nodos no terminales (nodos interiores) están rotulados por los símbolos no terminales. Los nodos."

Presentaciones similares


Anuncios Google