Advertisement
claukiller

Untitled

May 15th, 2018
116
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 1.41 KB | None | 0 0
  1. EXAMEN MAYO 2017
  2. 1. Hacer un operador '^' que haga una puerta lógica xor (solo es verdadero cuando 1 de los dos operandos es
  3. verdadero).
  4. - Modificar parser para añadir la operación y su precedencia
  5. - Cambiar el codeGeneration de value para realizar la operación
  6. - Se puede hacer negando ambos operandos y negandolos y luego haciendo and y negandolo, es decir:
  7. push op1
  8. not
  9. push op2
  10. not
  11. and
  12. not
  13. O se puede hacer con labels como si de ifs se tratar
  14.  
  15. 2. Cambiar la asignación para que se puedan asignar listas de valores a listas de variables (ejemplo: a,b = 1,2).
  16. Consideración a tener en cuenta: si se asigna una variable a otra variable, el valor que se asigna es el que tenía
  17. antes de tal asignación, esto es, si tenemos una variable a con valor 1 y una variable b con valor 2, y hacemos
  18. a,b = b, a el resultado no puede ser 2,2 sino 2,1.
  19. - Modificamos parser para cambiar la asignación por una lista de expressiones
  20. - Modificamos nodo AST para cambiar la left y right por listas
  21. - Modificamos typeChecking para hacer la misma operación iterando sobre las listas y para comprobar que
  22. ambas listas tienen el mismo tamaño
  23. - Modificamos el CodeGeneration de execute para primero guardar todos los pares address y valor en la pila
  24. y luego hacer store de todos de una vez (para que el store corresponda con los tipos, hay que iterar por
  25. los tipos alreves)
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement