FASES DE UN COMPILADOR
- Analizador Léxico
- Analizador de Sintaxis
- Analizador semántico
- Generador intermedio de código
- Mejora del Código
- Generador de código
Fig1: Fases de un compilador
Cada una de las fases hace uso del manejo de una tabla de símbolos y de Errores.
Tabla de Símbolo: Una tabla de símbolos se forma básicamente de una estructura de datos donde cada registro presenta un identificador y sus campos los atributos(tipo de número, espacio asignado, su alcance) del identificador
Detección de Errores: Cada fase puede encontrar errores. Sin embargo, después de detectar un error cada fase debe tratar de alguna forma ese error, para poder continuar la compilación.
Las fases de análisis sintáctico y semántico por lo general manejan una gran porción de errores detectables por el compilador.
- La fase léxica puede detectar errores donde los caracteres restantes de la entrada no forman ningún componente léxico del lenguaje.
- Los errores donde la cadena de componentes léxicos violan las reglas de estructura (sintaxis) del lenguaje son determinadas por la fase de análisis sintáctico.
- Durante el análisis semántico el compilador intenta detectar construcciones que no tengan la estructura sintáctica correcta, pero que no tengan significado para la operación implicada.
ANALIZADOR LÉXICO
INTRODUCCIÓN
En un compilador el análisis lineal se llama análisis léxico o exploración.
El principal objetivo del analizador léxico es leer el flujo de caracteres de entrada y transformarlo en una secuencia de componentes léxicos que utilizará el analizador sintáctico. Se ocupa de ciertas labores de “limpieza”, entre ella eliminar los blancos o los comentarios.
FUNCIONES
- Ignorar caracteres no relevantes
- Agrupar el resto de los caracteres
o Rechazar agrupaciones inválidas y clasificar las válidas: palabras reservadas, identificadores o variables.
TOKEN
Símbolos terminales de una gramática. Pueden ser Identificadores, palabras reservadas, operadores
LEXEMA
Secuencia de caracteres del código fuente que son identificados como un token específico
Ejemplo:
Else, If, do, int Token Palabras Reservadas
PATRÓN
Regla que permite determinar que lexemas pertenecen a un token
Token: IDENTIFICADOR lexema: num1
BIBLIOGRAFÍA
Brookshear, J. G. Teorías de la Computación - Lenguajes Formales, Automátas y Complejidad.
Díaz, E. L. (2002). Análisis y diseño de compiladores. Primera Edicion.
DRAGON BOOK Compiladores Principios - Tecnicas y herramientas.