Compiladores, generación de codigo intermedio, auxiliar guia

Solo disponible en BuenasTareas
  • Páginas : 33 (8158 palabras )
  • Descarga(s) : 0
  • Publicado : 8 de junio de 2010
Leer documento completo
Vista previa del texto
TEMA 7

´ ´ GENERACION DE CODIGO INTERMEDIO. ´ OPTIMIZACION

Bibliograf´a: ı
   

Aho, A.V., Sethi, R., Ullman, J.D. (1990), Compiladores: principios, t´ cnicas y herramientas, Tema 8, 9, 10 (pag. 478-666). e Louden, K.C. (1997), Compiler Construction: Principles and Practice, Tema 8, p´ ginas: 398-481. a

1 Introducci´ n. o 2 Tipos de representaciones intermedias: C´ digo de3-direcciones. o 3 C´ digo intermedio como un atributo sintetizado. o 4 Generaci´ n de c´ digo para expresiones y sentencias de control: o o 4.1 Proposiciones de asignaci´ n. o 4.2 Expresiones aritm´ ticas. e 4.3 Expresiones booleanas. 4.4 Sentencias de control. 5 Optimizaci´ n de c´ digo: o o 5.1 Bloques b´ sicos y optimizaci´ n local. a o 5.2 Eliminaci´ n de subexpresiones comunes. o 5.3 Eliminaci´ n de c´digo muerto. o o

206

´ 7.1. INTRODUCCION

5.4 Transformaciones aritm´ ticas. e 5.5 Empaquetamiento de variables temporales. 5.6 Mejoras en lazos.

7.1

´ INTRODUCCION

Como se coment´ en el primer cap´tulo el proceso de la compilaci´ n se o ı o desglosa en dos partes: la parte que depende s´ lo del lenguaje fuente (etapa o inicial o front-end ) y la parte que depende s´ lo dellenguaje objeto (etapa o final o back-end).
     

Etapa inicial: corresponde con la parte de an´ lisis (l´ xico, sint´ ctico a e a y sem´ ntico). a Etapa final: corresponde con la parte de s´ntesis (generaci´ n de c´ digo). ı o o

La etapa inicial traduce un programa fuente a una representaci´ n intermeo dia a partir de la cual la etapa final genera el c´ digo objeto. o De esta forma, los detallesque tienen que ver con las caracter´sticas del ı lenguaje objeto (c´ digo ensamblador, c´ digo m´ quina absoluto o relocalo o a izable, . . . ), la arquitectura de la m´ quina (n´ mero de registros, modos de a u direccionamiento, tama˜ o de los tipos de datos, memoria cache, ...), el enn torno de ejecuci´ n (estructura de registros y memoria de la m´ quina donde o a se va a ejecutar el programa .. . ) y el sistema operativo se engloban en la etapa final y se aislan del resto. La generaci´ n de c´ digo es la tarea m´ s complicada de un compilador. o o a Las ventajas de utilizar esta representaci´ n intermedia, independiente de o la m´ quina en la que se va a ejecutar el programa, son: a Se puede crear un compilador para una nueva m´ quina distinta uniena do la etapa final de la nueva m´quina a una etapa inicial ya existente. a Se facilita la redestinaci´ n. o

´ ´ ´ TEMA 7. GENERACION DE CODIGO INTERMEDIO. OPTIMIZACION

207

La figura 7.1 muestra las dos etapas y como se relacionan entre s´ a trav´ s ı e de la representaci´ n intermedia. o
Programa fuente ETAPA INICIAL ETAPA FINAL Analizador Léxico Componentes léxicos Analizador Sintáctico Arbol Sintáctico AnalizadorSemántico Código Intermedio Optimizador de Código máquina Generador de código máquina

En este cap´tulo veremos c´ mo traducir las construcciones de los lenguajes ı o de programaci´ n como: las declaraciones, asignaciones y proposiciones o de flujo de control a una representaci´ n intermedia. La mayor parte de las o traducciones de estas proposiciones se pueden implantar durante el an´ lisis a sint´ cticoutilizando las t´ cnicas de traducci´ n vistas en en el dise˜ o de a e o n esquemas de traducci´ n dirigidos por la sintaxis (ETDS). o

 

Se puede aplicar, a la representaci´ n intermedia, un optimador de o c´ digo independiente de la m´ quina. o a

Código máquina

Optimizador de código intermedio

Figura 7.1: Etapa inicial y final de un compilador

208

´ 7.2. TIPOS DEREPRESENTACIONES INTERMEDIAS: EL CODIGO DE 3-DIRECCIONES

7.2

´ TIPOS DE REPRESENTACIONES INTERMEDIAS: EL CODIGO DE 3-DIRECCIONES

Una representaci´ n intermedia es una estructura de datos que representa al o programa fuente durante el proceso de la traducci´ n a c´ digo objeto. Haso o ´ ta ahora hemos usado el arbol de an´ lisis sint´ ctico como representaci´ n a a o intermedia, junto con la tabla...
tracking img