Escolar Documentos
Profissional Documentos
Cultura Documentos
2.1) El analizador lxico 2.2) El analizador sintctico 2.3) El analizador semntico 2.4) El optimizador 2.5) El generador de cdigo 2.6) La tabla de smbolos
3) Y los intrpretes?
-J.Ezpeleta-
Introduccin Qu es un compilador?
Programa que lee un programa (fuente) en un lenguaje Lo traduce a un programa EQUIVALENTE en otro lenguaje (objeto) Adems: da mensajes de error lleva a cabo determinadas correcciones (recuperacin de errores) puede optimizar el cdigo generado
programa fuente compilador errores programa objeto
-J.Ezpeleta-
-J.Ezpeleta-
tabla de smbolos
generador cdigo intermedio cdigo intermedio optimizador generador cdigo objeto cdigo objeto optimizador
Compiladores I. C.P.S. Universidad de Zaragoza -J.Ezpeleta5
Segunda fase
es la parte fundamental (y siempre presente) consta de: analizador lxico analizador sintctico generador de cdigo traduce el cdigo fuente a otro objeto puede ser el definitivo puede ser un cdigo intermedio
-J.Ezpeleta-
Cuarta fase:
traduce el cdigo intermedio (optimizado) a ensamblador binario
-J.Ezpeleta-
El scanner recorre los caracteres de entrada (el fuente) hasta reconocer un token
token: unidad lxica indivisible ejemplos: while,if,==,>=,ancho,...
La secuencia de caracteres correspondiente se llama lexema (componente lxico) 1 token <> 1 lexema
-J.Ezpeleta-
-J.Ezpeleta-
10
-J.Ezpeleta-
11
El analizador sintctico O parser Objetivo: agrupar los tokens suministrados por el scanner para reconocer frases Cmo lo hace?
La sintaxis se suele especificar formalmente mediante una GLC tambin de otros tipos El parser recibe tokens y los agrupa de acuerdo a
producciones producciones
El parser detecta errores sintcticos Y si es bueno, puede adems realizar algunas correcciones
Compiladores I. C.P.S. Universidad de Zaragoza -J.Ezpeleta12
y debemos analizar
posicion = inicial + velocidad * 60
-J.Ezpeleta-
13
-J.Ezpeleta-
14
Generacin del cdigo intermedio Generalmente se lleva a cabo mediante gramticas de atributos
la GLC se completa con atributos necesarios
tipo valor acciones a ejecutar cuando se detecta una construccin legal ....
-J.Ezpeleta-
15
-J.Ezpeleta-
16
El optimizador El cdigo intermedio generado es analizado y transformado en uno equivalente optimizado Es una tarea muy costosa
De hecho, generalmente se puede invocar al compilador activando/desactivando esta opcin
-J.Ezpeleta-
17
El generador de cdigo Toma cdigo intermedio y genera cdigo objeto para la mquina considerada Es la parte ms prxima a la arquitectura de la mquina Habitualmente, se escriben a mano
desarrollo a medida para cada mquina especfica
Dada la complejidad, si no se va a realizar optimizacin, se asocia la generacin de cdigo a las rutinas semnticas
compiladores de una pasada (no hay pasos 1,3,4)
-J.Ezpeleta-
18
La tabla de smbolos Mecanismo para almacenar/acceder la informacin de los identificadores Las informaciones asociadas a un identificador se denominan atributos Cada vez que se usa un identificador, la tabla de smbolos proporciona la informacin necesaria Se usa tanto en la parte de anlisis como en la de sntesis
-J.Ezpeleta-
19
Ventajas:
la propia ejecucin puede modificar el programa datos y programa son datos variables pueden cambiar dinmicamente de tipo facilidades de depuracin fuente presente durante ejecucin
-J.Ezpeleta-
20
-J.Ezpeleta-
21