Fases de compilación
A finales
de la década de los 50 [DISPGARR 2005], en el año 1958
se ofrece una solución al problema de que un compilador fuera
utilizable por varias máquinas, esta consistía
en dividir el compilador en dos etapas, una inicial (de análisis)
y otra final (de síntesis), que se denominan”front end”
y ”back end”. En la etapa inicial se analiza el programa
fuente y en la etapa final se produce la generación de código
para la máquina objeto.
Fases del
front-end:
Análisis
lexicográfico. Su trabajo consiste en descomponer el
programa fuente en sus elementos o símbolos constituyentes
(denominados tókenes), tales como palabras reservadas, operadores,
identificadores, números, separadores, ...
Análisis
sintáctico. Examina la estructura del programa y comprueba
que está escrito conforme a la sintaxis del lenguaje de
programación. La sintaxis establece como deben escribirse los
programas.
Análisis
semántico. Verifica si el significado de las
construcciones sintácticas es correcto conforme a la semántica
del lenguaje de programación y recoge información útil
para las fases posteriores.
Fases del
back-end:
Generador
de código intermedio. Se genera una representación
explícita del programa fuente. Esta representación
intermedia debe tener dos propiedades importantes: ser fácil
de producir y fácil de traducir al lenguaje objeto.
Optimizador
de código. En esta fase se analizará el código
intermedio con el objetivo de mejorarlo.
Generador
de código. Se encarga de generar el código objeto
definitivo, que podrá ser directamente ejecutable, o necesitar
de otros pasos previos a la ejecución, tales como ensamblado,
encadenado y carga.
|