Unidad Nº 5 Generación de código intermedio
- Lenguajes intermedios, definición y tipos
- Optimización dependiente e independiente de la maquina Generador de código
INDEPENDENCIA DE LA MÁQUINA
Según el modelo de arquitectura de un compilador en el que éste se divide en frontend y backend, la etapa inicial traduce el programa fuente a una representación intermedia a partir de la cual la etapa final genera el código objeto, ya sea en forma de código máquina o ensamblador.
La construcción del lenguaje objeto en la etapa final, facilita la reutilización del frontend para crear otros compiladores del mismo lenguaje pero que generan código para otras plataformas.
La división en etapas se realiza utilizando un código intermedio independiente de la máquina destino.
El programa en código intermedio resultante es la salida de la etapa frontend y la entrada al backend.
¿A QUÉ LE LLAMAMOS CÓDIGO INTERMEDIO?
El código intermedio es una simplificación de los lenguajes de alto nivel en la que se elimina las estructuras y las declaraciones y con sentencias cercanas al ensamblador.
Los lenguajes intermedios son representaciones abstractas de un leguaje fuente. Algunas representaciones obsoletas o en desuso son los árboles sintácticos.
Actualmente se utilizan como código intermedio las cuádruplas.
¿PARA QUE LO UTILIZAMOS?
El código intermedio se utiliza en un compilador por las siguientes razones:
1. Es mas fácil hacer la conversión en dos fases.
2. Independiza el analizador sintáctico del resto del compilador.
Es mas sencillo aplicar la optimización sobre instrucciones independientes del hardware que sobre instrucciones dependientes.
¿A QUE SE REFIERE EL USO DE CUÁDRUPLAS?
Tipos de cuádruplas:
Cuartetos o código de tres direcciones (OPERADOR, operando1, operando2, resultado)
Tercetos o código de dos direcciones. (OPERADOR, operando1, operando2)
No hay comentarios.:
Publicar un comentario