Monografias.com > Sin categoría
Descargar Imprimir Comentar Ver trabajos relacionados

Resumen de Compilación (página 2)




Enviado por Pablo Turmero



Partes: 1, 2

Monografias.com

Traducción hilera-a-árbol?
Objetivo: Construir un “árbol de sintaxis” a partir de una secuencia de reglas BNF. El árbol será la representación funcional del programa fuente.

Método: Construir el árbol de abajo hacia arriba (“bottom-up”), conforme se utilizan las reglas de re-reescritura. Se hace uso de una pila de árboles.

Ejemplo:

Monografias.com

Monografias.com

Análisis de Restricciones Contextuales
Objetivo: Analizar la semántica estática, ej.,

¿ variables declaradas antes de ser usadas ?
¿ Compatibilidad de tipos en la asignación ?
ej, a:=3
¿ Compatibilidad de tipos en la operación ?
ej, a+3
Coinciden los tipos de parámetros formales y actuales?
Aplicación de las reglas de visibilidad.

Monografias.com

Análisis de Restricciones Contextuales (cont.)
Método: Se recorre el árbol recursivamente, deduciendo el tipo de cada (sub)expresión, y regresando ee tipo.

Se hacer uso de una TABLA DE DECLARACIONES, para grabar informacion acerca de los nombres.

Se “decora” el árbol con información de referencia.

Monografias.com

Monografias.com

Ejemplo
Cronológicamente,

Se ingresa x en la tabla DCLN, con su tipo.
Se revisa la compatibilidad de tipo para x = 5.
X2 no esta declarado!
Se verifica que el tipo de ’>’ es booleano.
Se revisa la compatibilidad de tipo para ‘+’.
Se revisa la compatibilidad de tipo entre Id:x y int:1 (nodo ‘+’).

Monografias.com

Generación de Código
Objetivo: Convertir el árbol de sintaxis a código objeto.

El código objeto podria ser:

Lenguaje de máquina.
Lenguaje ensamblador.
Cuádruples para una máquina ficticia:
Etiqueta
Cógo de operación
Operandos (1 o 2)?
?
?

Monografias.com

Generación de Código (cont.)?
Ejemplo:
“pc” en UNIX genera código ensamblador.
“pi” en UNIX genera código para la máquina “p”, que es interpretado por… un interpretador.

pc: Cómpilación lenta, ejecución rápida.
pi: Compilacion rápida, ejecución lenta.

Método: Recorrer el árbol otra vez.

Monografias.com

Código (para una máquina de pila)?
LOAD 5
STORE X
LOAD X
LOAD 10
BGT
COND L1 L2
L1 LOAD X
LOAD 1
BADD
STORE X
GOTO L3
L2
. . .
L3

Monografias.com

Optimización de Código
Objetivo:
Reducir el tamaño del programa objeto.
Disminuir el tiempo de ejecución del objeto.

Nota: “Optimización” es un nombre incorrecto. “Mejoramiento”, sería màs adecuado.
Dos tipos de optimización:

Optimización “Peephole” (local).
Optimización Global (Mejorar iteraciones, etc.).

Monografias.com

Optimizacion de Codigo (cont.)?
Ejemplo (de la diapositiva anterior):

LOAD 5 se puede LOAD 5
STORE X reemplazar STND X
LOAD X con

Almacenamiento no-destructivo, i.e., almacena en X, pero no destruye el valor superior de la pila.

Monografias.com

Resumen
Sintáctico
Fuente
Restrictor
Generador de código
Código
Interpretador
Filtro
Léxico
Entrada
Salida
Manejo de Tablas
Rutinas de Errores
Tokens
Tokens
Arbol
Arbol

Partes: 1, 2
 Página anterior Volver al principio del trabajoPágina siguiente 

Nota al lector: es posible que esta página no contenga todos los componentes del trabajo original (pies de página, avanzadas formulas matemáticas, esquemas o tablas complejas, etc.). Recuerde que para ver el trabajo en su versión original completa, puede descargarlo desde el menú superior.

Todos los documentos disponibles en este sitio expresan los puntos de vista de sus respectivos autores y no de Monografias.com. El objetivo de Monografias.com es poner el conocimiento a disposición de toda su comunidad. Queda bajo la responsabilidad de cada lector el eventual uso que se le de a esta información. Asimismo, es obligatoria la cita del autor del contenido y de Monografias.com como fuentes de información.

Categorias
Newsletter