Codigo intermedio
Qué es Código Intermedio?
El código intermedio es un código que puede generar un compilador y que es un punto de acercamiento al código objeto al que se desea llegar. Los códigos intermedios pueden ser códigos de alto nivel, nivel medio o bajo nivel dependiendo de cómo se haya diseñado dicho código y a qué código objeto se desea llegar al final. Pero lo que sí debe de cumplir el código intermedio es ser un código de más bajo nivel que el código fuente original. Recordemos que la definición de compilador es un programa que se encarga de transformar un código fuente de alto nivel a otro código objeto de más bajo nivel.
A continuación se describen 3 tipos de códigos intermedios:
- Uno de tipo gráfico (Representación gráfica, no implementación gráfica)
- Un código estandarizado (Originalmente diseñado por Microsoft)
- Un código de máquina virtual (De un lenguaje compilado y posteriormente interpretado)
Generador de Código Intermedio
Después de los análisis sintáctico y semántico, algunos compiladores generan una representación intermedia explicita del programa fuente.
Se puede considerar esta representación intermedia como un programa para una máquina abstracta. Esta representación intermedia debe tener dos propiedades importantes; debe ser fácil de producir y fácil de traducir al programa objeto.
La representación intermedia puede tener diversas formas. Una forma intermedia es la llamada “código de tres direcciones”, que es como el lenguaje ensamblador para una máquina en la que cada posición de memoria puede actuar como un registro. El código de tres direcciones consiste en una secuencia de instrucciones, cada una de las cuales tiene como máximo tres operandos. El programa fuente de (1.1) puede aparecer en código de tres direcciones como.
Funciones del generador de código intermedio.
La tarea de síntesis suele comenzar generando un código intermedio. El código intermedio no es el lenguaje de programación de ninguna máquina real, sino que corresponde a una máquina abstracta, que se debe de definir lo más general posible, de forma que sea posible traducir este código intermedio a cualquier máquina real. El objetivo del código intermedio es reducir el número de programas necesarios para construir traductores, y permitir más fácilmente la transportabilidad de unas máquinas a otras. Supóngase que se tienen n lenguajes, y se desea construir traductores entre ellos. Sería necesario construir n*(n-1) traductores. Sin embargo si se construye un lenguaje intermedio, tan sólo son necesarios 2*n traductores. Así por ejemplo un fabricante de compiladores puede construir un compilador para diferentes máquinas objeto con tan sólo cambiar las dos últimas fases de la tarea de síntesis.
Comentarios
Publicar un comentario