Práctica 4: Compilador MINICOMP
Versión 6. Operadores relacionales y operadores lógicos.
- Modifica los operadores relacionales para poder comparar también
operandos de tipo real. Si uno de los operandos es de tipo
entero y otro es de tipo real, realiza una conversión implícita
de entero a real, igual que hiciste con los operadores
aritméticos en la versión 1.
- Incorpora los siguientes operadores lógicos:
- Operador de conjunción: se representa mediante /\ y es
binario, infijo y asociativo por la izquierda.
- Operador de disyunción: se representa mediante \/ y es
binario, infijo y asociativo por la izquierda.
- Operador de negación: se representa mediante ! y es unario y prefijo.
El operador de disyunción debe ser menos prioritario que el de conjunción, y ambos deben ser menos prioritarios que los operadores relacionales. El operador de negación debe ser igual de prioritario que el operador de cambio de signo.
En todos ellos, los operandos deben ser de tipo lógico y el resultado debe ser de tipo lógico.
La evaluación de los operadores de conjunción y de disyunción se debe hacer, como en Python, en cortocircuito: si el primer operando permite determinar el resultado, no se debe evaluar el segundo operando.
- Operador de conjunción: se representa mediante /\ y es
binario, infijo y asociativo por la izquierda.
Aclaración para estudiantes repetidores: Respecto del curso pasado hemos movido hasta aquí el punto 1, que se hacía en la versión 1, y hemos cambiado la prioridad del operador de negación.
Última actualización: 21 de abril de 2010.