Fases de Un Compilador
Fases de Un Compilador
Fases de Un Compilador
MATERIA:
Lenguajes y autómatas 1
TRABAJO:
Fases de un compilador
ALUMNO:
Víctor Manuel Ortiz Rodríguez
CATEDRATICO:
Ing. Santos Gordillo José Ángel
CARRERA:
Ingeniería en sistemas computacionales
Fases de un compilador
--Análisis Léxico
– Análisis Sintáctico
– Análisis Semántico
– Generación y Optimización de código intermedio
– Generación de código objeto
• Analizador léxico: lee la secuencia de caracteres de izquierda a derecha del programa fuente
y agrupa las secuencias de caracteres en unidades con significado propio (componentes
léxicos o “tokens” en inglés).
• Se determinan las relaciones estructurales entre los componentes léxicos, esto es semejante
a realizar el análisis gramatical sobre una frase en lenguaje natural. La estructura sintáctica la
definiremos mediante las gramáticas independientes del contexto.
Análisis semántico: realiza las comprobaciones necesarias sobre el árbol sintáctico para
determinar el correcto significado del programa.
TECNOLÓGICO NACIONAL DE MÉXICO
Instituto Tecnológico de Comitán
• Tabla de Símbolos: es una estructura tipo diccionario con operaciones de inserción, borrado y
búsqueda, que almacena información sobre los símbolos que van apareciendo a lo largo del
programa como son: – los identificadores (variables y funciones) – Etiquetas – tipos definidos
por el usuario (arreglos, registros, etc.)
• Gestor de errores: detecta e informa de errores que se produzcan durante la fase de análisis.
Debe generar mensajes significativos y reanudar la traducción.
TECNOLÓGICO NACIONAL DE MÉXICO
Instituto Tecnológico de Comitán
La mayoría de los compiladores son dirigidos por la sintaxis, es decir, el proceso de traducción
es dirigido por el analizador sintáctico. El análisis sintáctico genera la estructura del programa
fuente a través de tokens. El análisis semántico proporciona el significado del programa
basándose de la estructura del árbol de análisis sintáctico.
• El número de pasadas, es decir, el número de veces que hay que analizar el código fuente,
está en función del grado de optimización. Típicamente se realiza una pasada para realizar el
análisis léxico y sintáctico, otra pasada para el análisis semántico y optimización del lenguaje
intermedio y una tercera pasada para generación de código y optimizaciones dependientes de
la máquina.
Bibliografía: