Práctica 11 - PowerPoint PPT Presentation

maia-dorsey
pr ctica 11 n.
Skip this Video
Loading SlideShow in 5 Seconds..
Práctica 11 PowerPoint Presentation
Download Presentation
Práctica 11

play fullscreen
1 / 20
Download Presentation
Práctica 11
131 Views
Download Presentation

Práctica 11

- - - - - - - - - - - - - - - - - - - - - - - - - - - E N D - - - - - - - - - - - - - - - - - - - - - - - - - - -
Presentation Transcript

  1. Práctica 11 Traductor DSS con CUP

  2. 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. • Cabe resaltar que CUP solo nos permite manejar atributos sintetizados en las acciones semáticas.

  3. FUNCIONAMIENTO • Para calcular el resultado de la expresión booleana se ira calculando por los niveles del árbol sintáctico hasta llegar a la raíz. raíz Hay que transmitir el valor true (resultado) hasta el nodo raiz true or true

  4. FUNCIONAMIENTO • A 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.

  5. FUNCIONAMIENTO • J::=(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.

  6. FUNCIONAMIENTO • 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.

  7. FUNCIONAMIENTO • L:: L and J | L or J | L nand J | L nor J | L xor J | L xnor J | J • Supuestamente, 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.

  8. FUNCIONAMIENTO • A ::= L ; A | L ; • En esta apartado al terminar de reconocer L aplicamos una acción semántica para imprimir el valor calculado anteriormente.

  9. EJEMPLOS • Reconocemos el valor False. (falseandtrue) xor 45 < 78 ; J False False

  10. EJEMPLOS • Transmitimos el valor reconocido a J (falseandtrue) xor 45 < 78 ; J False False

  11. EJEMPLOS • Reconocemos el valor true. (falseandtrue) xor 45 < 78 ; J True True

  12. EJEMPLOS • Transmitimos el valor reconocido a J (falseandtrue) xor 45 < 78 ; True J True

  13. EJEMPLOS • Transmitimos el valor de J a L (falseandtrue) xor 45 < 78 ; L L and J True J False

  14. EJEMPLOS • Transmitimos el valor de J a L y realizamos la operación. (falseandtrue) xor 45 < 78 ; L L and J True False J

  15. EJEMPLOS • Transmitimos el valor resultante a L (falseandtrue) xor 45 < 78 ; False L L and J J

  16. EJEMPLOS • Realizamos la operación y trasmitimos el valor a C (falseandtrue) xor45 < 78 ; True C NUM < NUM 45 78

  17. EJEMPLOS • Transmitimos el valor de C a J (falseandtrue) xor 45 < 78 ; L L xor J False C True

  18. EJEMPLOS • Realizamos la operación y la transmitimos a L (falseandtrue) xor 45 < 78 ; L L xor J True False C

  19. EJEMPLOS • Realizamos la operación y la transmitimos a L (falseandtrue) xor 45 < 78 ; True L L xor J C

  20. EJEMPLOS TRUE • Imprimimos el valor resultante (falseandtrue) xor 45 < 78 ; A L ; True