Fases de la compilación
Un compilador opera como una secuencia de fases, cada una de las cuales transforma una representación del programa fuente en otro.
En la práctica las fases pueden agruparse en análisis y síntesis, pero si nos adentramos más en el tema podemos estructurar el proceso de compilación en 5 grandes etapas: analizador léxico, analizador sintáctico, analizador semántico, generador de código intermedio y optimizador de código.53
Durante el análisis se divide el programa fuente en componentes y se genera una estructura gramatical. Después, esa estructura gramatical se utiliza para crear una representación intermedia del programa fuente. Si durante el análisis se detecta que el programa fuente está mal respecto a la sintaxis o a la semántica, se genera un mensaje para que el programador pueda corregirlo.
También, durante el análisis se recolecta información sobre el programa fuente que es almacenado en una estructura denominada tabla de símbolos, la cual se pasa junto con la representación intermedia a la parte de la síntesis y es utilizada durante todas las fases de la compilación. En la parte de la síntesis se construye el programa objeto.
Al análisis se le conoce como front end del compilador; a la síntesis, que es la traducción propiamente dicha, se le denomina back end.
Fuente: Apuntes de Informática VII de la FCA de la UNAM