2.3.2 Expresiones.
En esta función recibe una cadena que representa una línea de código intermedio y toma las medidas oportunas para que ese código se utilice. Estas medidas pueden ser escribir la línea en un fichero adecuado, almacenar la instrucción en una lista que después se pasará a otros módulos, o cualquier otra que necesitemos en nuestro compilador.
Expresiones aritméticas
Son aquella donde los operadores que intervienen en ella son
numéricos, el resultado es un número y los operadores son aritméticos. Los
operadores aritméticos más comúnmente utilizados son: +, - , * , / y %.
Comenzamos el estudio por las expresiones aritméticas. Lo
que tendremos que hacer es crear por cada tipo de nodo un método que genere el
código para calcular la expresión y lo emita. Ese código dejará el resultado en
un registro, cuyo nombre devolverá el método como resultado.
Para reservar estos registros temporales, utilizaremos una
función, reserva. En principio bastar ‘a con que esta función devuelva un
registro distinto cada vez que se la llame.
Cada nodo generará el código de la siguiente manera:
Por cada uno de sus operandos, llamara al método
correspondiente para que se evalúe la sub expresión. Si es necesario, reservara
un registro para guardar su resultado.}
Emitirá las instrucciones necesarias para realizar el
cálculo a partir de los operandos.
Para generar expresiones estas deben representarse de manera
más simple y más literal para que su conversión sea más rápida.
Por ejemplo la traducción de operaciones aritméticas debe
especificarse una por una, de tal forma que una expresión sea lo más mínimo
posible.
Comentarios
Publicar un comentario