Estructura de un Compilador
Construcción sistemática del compilador
Back end
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.
Front End
partes de fases, que dependen exclusivamente del lenguaje fuente y que son independientes de la máquina para la cual se va a generar el código
Tabla de simbolos
es una estructura de datos que posee información sobre los identificadores definidos por el usuario
Ejemplos de compilación
Etapa de síntesis
Fase de generación de código maquina
es la generación de código objeto, que por lo general consiste en código máquina reubicable o código ensamblador
Fase de optimización de código
fase trata de mejorar el código intermedio, de modo que en la siguiente fase resulte un código de máquina más rápido de ejecutar
Fase de Generación de código intermedio
suele generar una representación intermedia explícita del programa fuente
Etapa de análisis
Fase de análisis semántico
revisa el árbol sintáctico junto con los atributos y la tabla de símbolos para tratar de encontrar errores semánticos
Fase de análisis sintáctico
Subtopic
Trabaja con una gramática de contexto libre y genera el árbol sintáctico que reconoce su sentencia de entrada
Fase de análisis lexicográfico
se lee de izquierda a derecha y se agrupa en componentes léxicos
Procesamientos
el código fuente de una aplicación se puede dividir en módulos almacenados en archivos distintos