Documente Academic
Documente Profesional
Documente Cultură
Compiladores
ASIGNATURA: COMPILADORES
1
CONTENIDOS
Tema 1.- Introduccin a la Compilacin
3
Conceptos relacionados
Arquitectura de Lenguajes de
Computadoras Programacin
Compiladores
Teora de
Lenguajes Ingeniera de
Software
Teora de
Algoritmos
6
HISTORIA
Computadoras Hombre
Cdigo
Mquina
Ensamblador
Cdigo Lenguaje
Mquina Ensamblador
Ensamblador Compilador
Cdigo Lenguaje Lenguaje de
Mquina Ensamblador Alto Nivel
7
HOY. Y A FUTURO
A futuro:
8
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.
9
SISTEMA PARA PROCESAMIENTO DE UN LENGUAJE
preprocesador
programa fuente
compilador
ensamblador
cdigo de mquina relocalizable
biblioteca
editor de carga y enlace archivos obj.relocal.
11
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
12
ANLISIS DEL PROGRAMA FUENTE
ANALISIS SEMANTICO
Se realizan revisiones para asegurar que los componentes de
un programa se ajustan de un modo significativo
13
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 15
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
18
ESQUEMA DE BLOQUES DE UN COMPILADOR
FUENTE Compilador
ANALISIS
Scanner
Tabla
Parser de
smbolos
SINTESIS
SENTENCIA
Tabla de
smbolos
20
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
(nombre-token, atributo)
22
1.- posicion es un lexema que se asigna a un token
(id,1), en donde id es un smbolo abstracto que
representa la palabra identificador y 1 apunta a la
entrada de la tabla de smbolos para la posicin.
24
El analizador lxico ignora los espacios en blanco
que separa los lexemas
25
posicion := inicial + velocidad * 60
A. Lex: id1 : = id2 + id3 * 60
A. Sint: :=
id1 +
id2 *
id3 60
A. Seman: :=
id1 +
id2 *
id3 entareal
60
26
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
28
GENERACIN DE CDIGO INTERMEDIO
Se genera una representacin intermedia explcita del PF
30
GENERACIN DE CDIGO
La fase final genera cdigo objeto ( en general cdigo de mquina
recolalizable o cdigo ensamblador)
31
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 34
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 36
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 37
EL LENGUAJE Y LA HERRAMIENTA
Ao 2004 38
ASPECTOS ACADEMICOS Y DE INVESTIGACION
AREA BENEFICIOS