20
Práctica 11 Práctica 11 Traductor DSS con CUP

Práctica 11

Embed Size (px)

DESCRIPTION

Práctica 11. Traductor DSS con CUP. INTRODUCCIÓN. La práctica nos pide realizar una definición dirigida por sintaxis a partir de una gramática que reconoce expresiones lógicas y con ayuda de CUP. - PowerPoint PPT Presentation

Citation preview

Page 1: Práctica 11

Práctica 11Práctica 11Traductor DSS con CUP

Page 2: Práctica 11

INTRODUCCIÓNINTRODUCCIÓNLa práctica nos pide realizar una

definición dirigida por sintaxis a partir de una gramática que reconoce expresiones lógicas y con ayuda de CUP.

Cabe resaltar que CUP solo nos permite manejar atributos sintetizados en las acciones semáticas.

Page 3: Práctica 11

FUNCIONAMIENTOFUNCIONAMIENTOPara calcular el resultado de la

expresión booleana se ira calculando por los niveles del árbol sintáctico hasta llegar a la raíz.

Page 4: Práctica 11

FUNCIONAMIENTOFUNCIONAMIENTOA continuación, explicaré que

acciones semánticas ejecuto en cada regla de la gramática.

Después utilizaré varios ejemplos para consolidar mi explicación.

Page 5: Práctica 11

FUNCIONAMIENTOFUNCIONAMIENTOJ::=(L) | not (L) | true | false | C

En la primera, se transmite el valor de L a J sin realizar ninguna operación sobre el valor.

En la segunda, se transmite también el valor de L a J aplicando el operador not sobre el valor (El valor true se transmitirá en false y viceversa).

En la tercera, se crea un objeto Boolean con el valor true, para transmitirlo a J.

En la cuarta, al igual que en la tercera, se crea el objeto Boolean con el valor false, para transmitirlo a J.

En la quinta, se transmite el valor contenido en C a J.

Page 6: Práctica 11

FUNCIONAMIENTOFUNCIONAMIENTO C ::= numero == numero | numero != numero |

numero < numero | numero > numero | numero <= numero | numero >= numero

A partir del lexema reconocido en el análisis léxico, los transformamos en números enteros (ya que no reconoce números decimales) y realizamos la comparación determinada y traspasamos el resultado a C.

Page 7: Práctica 11

FUNCIONAMIENTOFUNCIONAMIENTOL:: L and J | L or J | L nand J | L nor J |L xor J | L xnor J | JSupuestamente, L y J contienen los

resultados de los nodos que tienen debajo. Así que cogemos los valores resultantes en L y J, aplicamos la operación sobre los valores, y transmitimos el valor resultante a L. En el caso de la L::=J se transmite el valor de J a L sin realizar ninguna operación sobre el valor.

Page 8: Práctica 11

FUNCIONAMIENTOFUNCIONAMIENTOA ::= L ; A | L ;En esta apartado al terminar de

reconocer L aplicamos una acción semántica para imprimir el valor calculado anteriormente.

Page 9: Práctica 11

EJEMPLOSEJEMPLOS Reconocemos el valor False.

False

Page 10: Práctica 11

EJEMPLOSEJEMPLOS Transmitimos el valor reconocido a J

False

Page 11: Práctica 11

EJEMPLOSEJEMPLOS Reconocemos el valor true.

True

Page 12: Práctica 11

EJEMPLOSEJEMPLOS Transmitimos el valor reconocido a J

True

Page 13: Práctica 11

EJEMPLOSEJEMPLOS Transmitimos el valor de J a L

True

False

Page 14: Práctica 11

EJEMPLOSEJEMPLOS Transmitimos el valor de J a L y realizamos la

operación.

TrueFalse

Page 15: Práctica 11

EJEMPLOSEJEMPLOS Transmitimos el valor resultante a L

False

Page 16: Práctica 11

EJEMPLOSEJEMPLOS Realizamos la operación y trasmitimos el valor a C

True

45 78

Page 17: Práctica 11

EJEMPLOSEJEMPLOS Transmitimos el valor de C a J

False

True

Page 18: Práctica 11

EJEMPLOSEJEMPLOS Realizamos la operación y la transmitimos a L

False

True

Page 19: Práctica 11

EJEMPLOSEJEMPLOS Realizamos la operación y la transmitimos a L

True

Page 20: Práctica 11

EJEMPLOSEJEMPLOS Imprimimos el valor resultante

True

TRUE