PARTES DE UN COMPILADOR
La construcción de un compilador involucra la división del proceso en una serie de fases que variará con su complejidad. Generalmente estas fases se agrupan en dos tareas: el análisis del programa fuente y la síntesis del programa objeto.
• Análisis: Se trata de la comprobación de la corrección del programa fuente, e incluye las fases correspondientes al Análisis Léxico (que consiste en la descomposición del programa fuente en componentes léxicos), Análisis Sintáctico (agrupación de los componentes léxicos en frases gramaticales ) y Análisis Semántico (comprobación de la validez semántica de las sentencias aceptadas en la fase de Análisis Sintáctico).
• Síntesis: Su objetivo es la generación de la salida expresada en el lenguaje objeto y suele estar formado por una o varias combinaciones de fases de Generación de Código (normalmente se trata de código intermedio o de código objeto) y de Optimización de Código (en las que se busca obtener un código lo más eficiente posible).
• Análisis Léxico: Es la fase que se encarga de verificar si todas las cadenas pertenecen o no al lenguaje es decir, realiza un análisis símbolo por símbolo indicando el toque por cada uno de los elementos reconocidos o en el error en caso de no reconocerlo.
• Análisis Sintáctico: Se analiza la estructura de las expresiones en base a gramáticas. Verifica específicamente las reglas del lenguaje, en esta fase se puede determinar si una estructura o expresión esta bien formada.
• Análisis Semántico: Determina el significado o interpretación de las expresiones o gramáticas analizadas sintácticamente es decir, analizadas en la fase anterior.