Beruflich Dokumente
Kultur Dokumente
de Compiladores
ASIGNATURA:
COMPILADORES
Ao 2004 1
BIBLIOGRAFA
[AHO] Compilers. Principles, Techniques, and Tools
Aho, Sethi; Adisson-Wesley 1986
[LEV] Lex &Yacc. Levine; Mason; Brown; OReilly & Ass. 1995
Ao 2004 2
CONTENIDOS
Tema 1.- Introduccin a la Compilacin
Ao 2004 4
Conceptos relacionados
Arquitectura de Lenguajes de
Computadoras Programacin
Compiladores
Teora de
Lenguajes Ingeniera de
Software
Teora de
Algoritmos
HISTORIA
Experimentacin relacionada a traduccin de
frmulas
1950: difcil escritura
Primer FORTRAN: 18 aos
Hoy: tcnicas sistemticas, lenguajes de
implementacin, entornos de programacin y
herramientas de software
Ao 2004 7
HISTORIA
Computadoras Hombre
Cdigo
Mquina
Ensamblador
Cdigo Lenguaje
Mquina Ensamblador
Ensamblador Compilador
Cdigo Lenguaje Lenguaje de
Mquina Ensamblador Alto Nivel
Ao 2004 8
HOY. Y A FUTURO
A futuro:
Ao 2004 9
TIPOS DE SISTEMAS DE COMPILACIN
ENSAMBLADOR
Traducen programas escritos en lenguaje ensamblador
a cdigo mquina
COMPILADOR
Traducen programas escritos en lenguaje de alto nivel a
cdigo intermedio o a cdigo mquina
INTERPRETE
No genera cdigo objeto, analiza y ejecuta directamente
cada proposicin del Programa Fuente (PF)
PREPROCESADOR
Sustituyen macros, incluyen archivos o extensin del
lenguaje.
Ao 2004 10
SISTEMA PARA PROCESAMIENTO DE UN LENGUAJE
preprocesador
programa fuente
compilador
ensamblador
cdigo de mquina relocalizable
biblioteca
editor de carga y enlace archivos obj.relocal.
Ao 2004 12
UN AMBIENTE GENERAL DE COMPILACIN
Fuente
Anlisis lxico
Anlisis sintctico
Anlisis semntico Ms:
Sistemas de
Intermedio edicin y
depuracin
Generador de cdigo
Cdigo relocalizable
Enlazador
Objeto
Ao 2004 13
ANLISIS DEL PROGRAMA FUENTE
ANALISIS SEMANTICO
Se realizan revisiones para asegurar que los componentes de
un programa se ajustan de un modo significativo
Ao 2004 14
EJEMPLO DE ANLISIS:
posicion := inicial + velocidad * 60
a ) Componentes lxicos:
1. El identificador posicion
2. El smbolo de asignacin :=
3. El identificador inicial
4. El signo de suma: +
5. El identificador velocidad
6. El signo de multiplicacin: *
7. El nmero 60
identificador := expresin
posicion +
expresin expresin
velocidad
Ao 2004 60 16
posicion := inicial + velocidad * 60
c ) Anlisis semntico
PROGRAMA FUENTE
analizador lxico
analizador sintctico
administrador analizador semntico manejador
de la tabla generador de cdigo intermedio de errores
de smbolos optimizador de cdigo
generador de cdigo
PROGRAMA OBJETO
Ao 2004 19
ESQUEMA DE BLOQUES DE UN COMPILADOR
FUENTE Compilador
ANALISIS
Scanner
Tabla
Parser de
smbolos
SINTESIS
SENTENCIA
Tabla de
smbolos
Ao 2004 21
COMPILACIN DE UNA SENTENCIA EJEMPLO
Vel = V0 + Acel Sentencia fuente a compilar
<sent>
< sent asign> RECONOCEDOR:
<var> <expre>
<expre> + <term>
<term>
<fact> <fact> Anlisis sintctico:
V1 = V2 + V3 la sentencia es correcta
A. Sint: :=
id1 +
id2 *
id3 60
A. Seman: :=
id1 +
id2 *
id3 entareal
60
Ao 2004 23
ADMINISTRADOR DE LA TABLA DE SMBOLOS
TABLA DE SMBOLOS
Estructura de datos que contiene un registro por cada
identificador, con los campos para los atributos:
-- Informacin sobre la memoria asignada
-- tipo
-- mbito
-- Si es nombre de procedimiento (nmero, tipo
y mtodo de paso de cada argumento)
Permite encontrar rpidamente cada ID y almacenar o
consultar datos de ese registro
Ao 2004 25
GENERACIN DE CDIGO INTERMEDIO
Se genera una representacin intermedia explcita del PF
Ao 2004 27
GENERACIN DE CDIGO
La fase final genera cdigo objeto ( en general cdigo de
mquina recolalizable o cdigo ensamblador)
Ao 2004 28
PROGRAMAS RELACIONADOS CON UN COMPILADOR
PREPROCESADORES (producen la entrada para un comp.)
Procesamiento de Macros
Inclusin de archivos
Preprocesadores racionales (estruct. de control)
Extensiones a lenguajes ( bases de datos)
ENSAMBLADORES
Producen cdigo ensamblador que se pasa a un ensamblador
para su procesamiento ( versin mnemotcnica del cdigo de
mquina: nombres de operaciones y nombres de direcciones
de memoria)
PASADAS
Se agrupan las actividades de varias fases en una misma
pasada (lectura de un archivo de entrada y escritura de un
archivo de salida)
Ao 2004 31
HERRAMIENTAS PARA CONSTRUCCIN DE COMPIL.
GENERADORES DE ANALIZADORES SINTACTICOS
Producen AS a partir de una Gramtica Libre de Contexto
Hoy esta es una de la fases ms fciles de aplicar
Lex y YACC
Ao 2004 33
ALGUNOS TIPOS ESPECIALES DE COMPILADORES
COMPILE- LINK- GO
Se compilan segmentos por separado y luego se montan
todos los objetos producidos en un mdulo cargable listo
AUTOCOMPILADOR
Comp. escrito en el propio leng. que traduce. Portabilidad.
METACOMPILADOR
Programa al que se le especifica el lenguaje para el que se
quiere un comp. y produce el comp. como resultado
DECOMPILADOR
Traduce de cdigo mquina a leng. de alto nivel
Ao 2004 34
EL LENGUAJE Y LA HERRAMIENTA
Ao 2004 35
ASPECTOS ACADEMICOS Y DE INVESTIGACION
AREA BENEFICIOS