Generador De Codigo Intermedio
Enviado por Jessica1595 • 22 de Julio de 2014 • 5.485 Palabras (22 Páginas) • 316 Visitas
INDICE
Pág.
DEDICATORIA…………………………………………………………………. 3
PRESENTACIÓN…………………………………………………..……………4
INTRODUCCION…………………………………………………....................5
GENERACION DE CODIGO INTERMEDIO:
ASPECTOS GENERALES
CONCEPTO………………………………………………………….………… 7
1. Formas de representar el Código Intermedio
1.1. Arboles Sintaxis………………………………….……………….……..7
1.2 Código de tres direcciones…….………………………………………...8
1.2.1 Características.………………………………….…………………. 9
1.2.2 Instrucciones Comunes……………………………………………..9
1.2.3 Implementación…………………………………………………..…10
1.2.4 Ejemplo……………………………………………………………....11
1.3 Tipos y Declaraciones……………………………………………………11
1.4 Verificación de Tipos……………………………………………………..12
1.4.1 Tipos de Chequeos…………………………………………………12
1.4.2 Conversión de Tipos………………………………………………..12
1.4.3 Sobrecarga de Funciones y Operadores…………………………13
1.4.4 Funciones Polimórficas……………………………………………..13
1.5 Control de Flujo………………………………………………….……...…14
1.5.1 Expresiones Booleanas…………………………………………….14
1.5.2 Saltos…………………………………………………………………14
1.6 BACKPATCHING………………………………………………………….15
1.7 Instrucciones SWITCH…………………………………………….…...…15
1.7.1 Traducción de Instrucciones SWITCH-CASE…………………….15
1.7.2 Traducción de SWITCH-CASE dirigida por sintaxis……………..15
1.8 Figuras y Tablas…………………………………………………...………15
2. Generación de Código Intermedio mediantes Gramática de Tributos…...19
3. Ejemplo……………………………………………………………………….24
CONCLUSIÓN……………………………………………………....................26
BIBLIOGRAFÍA……………………………………………………………..…...27
LINKOGRAFÍA……………………………………………………………….…28
DEDICATORIA
A Dios por darnos la vida, salud,
Y sabiduría, por guiarnos por el camino
del bien, y así seguir adelante en nuestra
carrera profesional.
A nuestros padres agradecerles por su apoyo incondicional, moral y económico, que nos brindan día a día para poder cumplir nuestras metas.
Dedico también a mi docente
por la guía y orientación prestada
asi lograr el presente informe.
PRESENTACION
Este trabajo en presentado por las alumnas de Ingeniería de Sistemas, con el fin de elaborar una información adecuada sobre LA GENERACIÓN DE CÓDIGO INTERMEDIO, que este informe sea entendible, coherente y accesible a cada uno de los lectores.
En este informe encontramos los diversos puntos a tratar, la definición, sus características y todo lo relacionado con ello, rescatando puntos importantes que le den valor a nuestro trabajo.
Una representación intermedia es una estructura de datos que representa al programa fuente durante el proceso de la traducción a código objeto. El compilador primero traduce el código fuente en una forma más situable para la optimización, para luego convertirla en el código de máquina. El compilador transforma el código en un lenguaje más manejable, usualmente código de tres direcciones, el cual representa exactamente una instrucción de código de máquina, verifica tipos y traduce expresiones.
De esta manera estamos mostrando un pequeño resumen de los que será todo el contenido del trabajo. Esperamos que sea de su total agrado y satisfacción.
LAS ALUMNAS.
INTRODUCCIÓN
Ya hemos pasado por las etapas de análisis léxico, sintáctico y semántico, ahora viene la etapa de generador de código intermedio.
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 que depende solo del lenguaje objeto (etapa final o back-end).
La etapa inicial traduce un programa fuente a una representación intermedia partir de la cual la etapa final genera el código objeto. De esta forma, los detalles que tienen que ver con las características del lenguaje objeto (código ensamblador, código maquina absoluto o relocalizable,...), 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 máquina donde se va a ejecutar el programa...) y el sistema operativo se engloban en la etapa final y se aíslan del resto.
Con una representación intermedia bien definida, un compilador para el lenguaje i y la maquina j puede ser construido combinando el front-end para el lenguaje i con el back-end de la maquina j. De esta manera se pueden construir m*n compiladores escribiendo únicamente m front - ends y n back-ends.
Esta fase no es en realidad una parte separada del compilador, la mayoría de los compiladores generan código como parte del proceso de análisis sintáctico, esto es debido a que requieren del árbol de sintaxis y si este no va a ser construido físicamente, entonces deberá acompañar al analizador sintáctico al barrer el árbol implícito. En lugar de generar código ensamblador directamente, los compiladores generan un código intermedio que es más parecido al código ensamblador, las operaciones
...