GENERADOR DE CÓDIGO INTERMEDIO
La generación de código intermedio es una fase del compilador en la que el programa fuente se traduce a una representación intermedia que no está directamente en el lenguaje máquina ni en el lenguaje de alto nivel original. Este código es independiente de la arquitectura del hardware y actúa como un puente para facilitar la optimización y la generación de código final.
En nuestro lenguaje para figuras geométricas, el código intermedio representa las instrucciones para crear y manipular figuras geométricas en una forma genérica. Este código se usa posteriormente para convertirlo a instrucciones específicas de la plataforma donde se ejecutará el programa.
OBJETIVOS DE LA GENERACIÓN DE CÓDIGO INTERMEDIO
- Portabilidad: Permitir que el programa sea optimizado y traducido a múltiples arquitecturas con un esfuerzo mínimo.
- Optimización: Proporcionar una representación sencilla que permita realizar optimizaciones antes de generar el código final.
- Simplicidad: Facilitar la traducción desde la representación intermedia al código máquina o a cualquier otro lenguaje objetivo.
REPRESENTACIONES COMUNES DE CÓDIGO INTERMEDIO
1.-Código de tres direcciones (TAC):Este tipo de código intermedio representa operaciones en una forma de tres operandos:
t1 = x + y
t2 = t1 * z
2.-Pseudocódigo o representación de alto nivel:
Es una representación textual que se asemeja a un lenguaje de alto nivel.
DRAW CIRCLE x, y, r
3.-Notación de pila
Usa una estructura de pila para realizar operaciones.
PUSH x
PUSH y
ADD
En nuestro caso, utilizaremos una combinación de TAC y pseudocódigo para facilitar la representación de figuras geométricas.
EJEMPLO DE GENERACIÓN DE CÓDIGO INTERMEDIO
Consideremos nuestro lenguaje para figuras geométricas,el mostrado en la Figura 14:
Nuestra tabla de símbolos se muestra en la siguiente Figura:
| Figura 15 Tabla de símbolos. |
El código intermedio de nuestro programa fuente sería el siguiente:
| Figura 16 Código intermedio generado. |
PROCESO DE GENERACIÓN DE CÓDIGO INTERMEDIO
- Traducción de operaciones a instrucciones intermedias: Convertir las operaciones del programa fuente a instrucciones genéricas.
- Asignación de temporales: Las operaciones complejas se descomponen en operaciones más simples utilizando variables temporales.
- Instrucciones genéricas para las figuras geométricas: Crear una lista de instrucciones que representen las figuras y sus transformaciones.
Les dejo el link de un video para que puedan conocer más del tema:
Referencias:
Compilador Diseño - Generación de código intermedio. (s. f.-b). https://www.tutorialspoint.com/es/compiler_design/compiler_design_intermediate_code_generations.htm
Prezi, A. M. G. O. (s. f.). Generación de código intermedio. prezi.com. https://prezi.com/p/vqzlkn32dgbz/generacion-de-codigo-intermedio/
Landelinoivanonofrez. (2024, 22 abril). GENERADOR DE CODIGO INTERMEDIO - COMPILADORES.pptx [Diapositivas]. SlideShare. https://es.slideshare.net/slideshow/generador-de-codigo-intermedio-compiladorespptx/267435744
Aho, A. V. (2007). Compilers: Principles, Techniques, & Tools. Pearson.
Comentarios
Publicar un comentario