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.
No hay comentarios.:
Publicar un comentario