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

  1. Portabilidad: Permitir que el programa sea optimizado y traducido a múltiples arquitecturas con un esfuerzo mínimo.
  2. Optimización: Proporcionar una representación sencilla que permita realizar optimizaciones antes de generar el código final.
  3. 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:

Figura 14 Programa Fuente.

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

  1. Traducción de operaciones a instrucciones intermedias: Convertir las operaciones del programa fuente a instrucciones genéricas.
  2. Asignación de temporales: Las operaciones complejas se descomponen en operaciones más simples utilizando variables temporales.
  3. 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:

developtutos. (2020, 21 octubre). Generación de Código intermedio [Vídeo]. YouTube. https://www.youtube.com/watch?v=--Smz4YYbPM


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

Entradas más populares de este blog