La descarga está en progreso. Por favor, espere

La descarga está en progreso. Por favor, espere

Analizadores semánticos: DDS y EDT

Presentaciones similares


Presentación del tema: "Analizadores semánticos: DDS y EDT"— Transcripción de la presentación:

1 Analizadores semánticos: DDS y EDT
Práctica 11 Analizadores semánticos: DDS y EDT

2 Analizador semántico con CUP
Primero vamos a explicar el analizador semántico cuya gramática es la siguiente: A ::= L ; A| L ; L ::= L and J | L or J| L nand J| L nor| L xor J| L xnor J| J J ::= ( L )| true| false| not ( L )| C C ::= numero == numero | numero != numero | numero < numero | numero > numero | numero <= numero | numero >= numero

3 Analizador semántico con CUP
Para la explicación utilizaremos la siguiente cadena como entrada: Numero > numero xor numero==numero nand true; Y el árbol sintáctico es el que se muestra:

4 Analizador semántico con CUP

5 Analizador semántico con CUP
En primer lugar el analizador calcula las expresiones numéricas y el resultado lo almacena como un atributos sintetizados de C.

6 Analizador semántico con CUP
Posteriormente estos valores se propagan a J y L en cada caso.

7 Analizador semántico con CUP
Posteriormente estos valores se propagan a J y L en cada caso. A continuación se hace el cálculo xor y se guarda en L.

8 Analizador semántico con CUP
Luego se hace la 2ª operación (nand). Y el valor se guarda en L.

9 Analizador semántico con CUP
Luego se hace la 2ª operación (nand). Y el valor se guarda en L. Por último, A recoge el atributo sintetizado devuelto por L y lo imprime.

10 EDT con ANTLR En esta segunda parte realizaremos el mismo proceso para entender de qué manera funciona nuestro analizador semántico con ANTLR. La cadena de entrada para la explicación es la siguiente: 8/4+2*5; El árbol sintáctico es el siguiente:

11 EDT con ANTLR

12 EDT con ANTLR Al igual que el analizador anterior, primero se guarda
los lexemas en f como atributos sintetizados.

13 EDT con ANTLR Al igual que el analizador anterior, primero se guarda
los lexemas en f como atributos sintetizados. A continuación se tiene que comunicar el dato a t1 para poder realizar la operación. Atributo Heredado.

14 EDT con ANTLR En caso de ser una producción vacía simplemente
devuelve el dato sin modificarlo.

15 EDT con ANTLR Se realiza la operación en cada caso.

16 EDT con ANTLR Se realiza la operación en cada caso. Una vez calculado
el resultado se le tiene que pasar al antecedente (t en este caso).

17 EDT con ANTLR De esta manera se sigue realizando
los pasos para calcular el resultado final. e1 recoge el atributo heredado de t.

18 EDT con ANTLR Como antes, si la producción es vacía,
devuelve el resultado sin modificar como atributo sintetizado.

19 EDT con ANTLR Se realiza la operación con el atributo heredado
y con el sintetizado devuelto por t y e1.

20 EDT con ANTLR Se realiza la operación con el atributo heredado
y con el sintetizado devuelto por t y e1. Por último el recoge el atributo sintetizado de e1*. *Con este e1 nos referimos a la producción de nivel superior.

21 EDT con ANTLR Antes de realizarse la última reducción
el analizador imprimirá el resultado final. La producción a::= λ no se devuelve nada pues no tiene que calcular ningún valor.


Descargar ppt "Analizadores semánticos: DDS y EDT"

Presentaciones similares


Anuncios Google