Flujo del compilador
Las 6 fases clásicas de un compilador, desde el código fuente hasta el código máquina.
Análisis Léxico
ImplementadoEl lexer recorre el código carácter por carácter y agrupa los caracteres en unidades significativas llamadas tokens: palabras reservadas, identificadores, literales, operadores y delimitadores.
Análisis Sintáctico
ImplementadoEl parser LL(1) verifica que los tokens formen construcciones gramaticalmente válidas usando una tabla predictiva. Construye el AST y se recupera de errores por modo pánico.
Análisis Semántico
ImplementadoVerifica el significado del programa: variables declaradas, tipos compatibles, número correcto de argumentos, retornos válidos. Construye la tabla de símbolos con toda la información de ámbito.
Generación de Código Intermedio
ImplementadoEl generador C3D recorre el AST y produce instrucciones de tres direcciones. Crea temporales para subexpresiones y etiquetas para estructuras de control. Resultado: t0 = b * 5; t1 = a + t0. Ver /generador.
Optimización de Código
DidácticoAplica transformaciones para mejorar velocidad y reducir uso de memoria sin cambiar la semántica. Ejemplos: eliminación de expresiones comunes, propagación de constantes, desenrollar bucles, eliminación de código muerto.
Generación de Código
DidácticoTraduce el código intermedio a instrucciones reales del procesador (x86, ARM, etc.). Asigna registros, gestiona el stack y produce el binario ejecutable final.