Generacion de Codigo Intermedio

Páginas: 17 (4179 palabras) Publicado: 2 de noviembre de 2013
GENERACIONDE CODIGO INTERMEDIO
1. Introducción
2. Tipos de representaciones intermedias: Código de 3-direcciones.
3. Código intermedio como un atributo sintetizado
4. Generación de código para expresiones y sentencias de control
4.1 Proposiciones de asignación
4.2 Expresiones aritméticas
4.3 Expresiones booleanas
4.4 Sentencias de control
5. Optimización de código
5.1 Bloques básicos yoptimización local
5.2 Eliminación de subexpresiones comunes
5.3 Eliminación de código muerto
5.4 Transformaciones aritméticas
5.5 Empaquetamiento de variables temporales
5.6 Mejoras en lazos

INTRODUCCION
Como se comentó en el primer capítulo el proceso de la compilación se desglosa en dos partes: la parte que depende solo del lenguaje fuente (etapa
Inicial o front-end ) y la parte quedepende solo del lenguaje objeto (etapa final o back-end).

Etapa inicial: corresponde con la parte de análisis (léxico, sintáctico y semántico).
Etapa final: corresponde con la parte de síntesis (generación de código).

La etapa inicial traduce un programa fuente a una representación intermedia a partir de la cual la etapa final genera el código objeto.

De esta forma, los detalles quetienen que ver con las características del lenguaje objeto (código ensamblador, código maquina absoluto o relocalizarle), la arquitectura de la maquina (número de registros, modos de
Direccionamiento, tamaño de los tipos de datos, memoria cache), el entorno de ejecución (estructura de registros y memoria de la maquina donde se va a ejecutar el programa ) y el sistema operativo se engloban en la etapafinal y se aíslan del resto.

La generación de código es la tarea más complicada de un compilador.
Las ventajas de utilizar esta representación intermedia, independiente de
la maquina en la que se va a ejecutar el programa, son:
Se puede crear un compilador para una nueva máquina distinta uniendo la etapa final de la nueva máquina a una etapa inicial ya existente se facilita lare-destinación.
Se puede aplicar, a la representación intermedia, un optimización de código independiente de la máquina.

La figura muestra las dos etapas y como se relacionan entre sí a través de la representación intermedia.












Figura 7.1 Etapa inicial y final de un compilador.
En este capítulo veremos como traducir las construcciones de los lenguajes de programación como: lasdeclaraciones, asignaciones y proposiciones de flujo de control a una representación intermedia. La mayor parte de las traducciones de estas proposiciones se pueden implantar durante el análisis sintáctico utilizando las técnicas de traducción vistas en el diseño de esquemas de traducción dirigidos por la sintaxis (ETDS).

TIPOS DE REPRESENTACIONES INTERMEDIAS: EL CO DIGO
DE 3-DIRECCIONES

Unarepresentación intermedia es una estructura de datos que representa al programa fuente durante el proceso de la traducción a código objeto. Hasta ahora hemos usado el árbol de análisis sintáctico como representación intermedia, junto con la tabla de símbolos que contenía información sobre los nombres (variables, constantes, tipos y funciones) que aparecían en el programa fuente.

Aunque el árbolde análisis sintáctico es una representación valida, no se parece ni remotamente al código objeto, en el que solo se emplean saltos a direcciones en memoria en vez de construcciones de alto nivel, como sentencias if-then-else. Es necesario generar una nueva forma de representación intermedia. A esta representación intermedia, que se parece al código objeto pero que sigue siendo independiente de lamáquina, se le llama código intermedio.

El código intermedio puede tomar muchas formas. Todas ellas se consideran como una forma de linearizacion del árbol sintáctico, es decir, una representación del árbol sintáctico de forma secuencial. El código intermedio más habitual es el código de 3-direcciones.

El código de tres direcciones es una secuencia de proposiciones de la forma general...
Leer documento completo

Regístrate para leer el documento completo.

Estos documentos también te pueden resultar útiles

  • Generacion De Un Codigo Intermedio
  • Unidad viii generación de código intermedio
  • Unidad vi.- generacion de codigo intermedio
  • Generación De Código Intermedio
  • generacion codigo intermedio
  • Generacion de codigo intermedio (compilador)
  • codigo intermedio
  • Codigo intermedio

Conviértase en miembro formal de Buenas Tareas

INSCRÍBETE - ES GRATIS