Un compilador es un programa crucial en la informática que transforma código fuente escrito en un lenguaje de programación en un código ejecutable por una máquina. Este proceso se divide en varias etapas.
Una función esencial de un compilador es registrar los identificadores de
usuario utilizados en el programa
fuente y reunir información sobre los distintos atributos de cada identificador.
Construcción Sistemática de Compiladores
La etapa final incluye aquellas fases del compilador que dependen de la máquina destino y que, en general, no dependen del lenguaje fuente sino sólo del lenguaje intermedio. En esta etapa, se encuentran aspectos de la fase de generación.
La etapa inicial también puede hacer cierta optimización de código e incluye además, el manejo de errores correspondiente a cada una de esas fases.
Fase de Optimización
La optimización puede realizarse sobre el código
intermedio, sobre el código máquina, o sobre ambos
Generación de Código Maquina
Crea un bloque de código máquina
ejecutable, así como los bloques necesarios destinados a contener los datos
Generación de código intermedio
Genera un código independiente de la
máquina muy parecido al ensamblador. No se genera código máquina
Análisis Semántico
Comprueba que el programa fuente respeta las directrices
del lenguaje que se compila: chequeo
de tipos, rangos de valores, existencia de variables, etc.
Análisis Sintáctico
Comprueba que la estructura de los componentes básicos
sea correcta según las reglas gramaticales del lenguaje que se compila.
Análisis lexicográfico
Divide el programa fuente en los componentes básicos
del lenguaje a compilar. Cada componente básico es una subsecuencia