1.5 Fases de un compilador

Un compilador es un programa que lee un programa escrito en un lenguaje, el lenguaje fuente, y lo traduce a un programa equivalente en otro lenguaje, el lenguaje objeto. Como parte importante de este proceso de traducción, el compilador informa a su usuario de la presencia de errores en el programa fuente.



A primera vista, la diversidad de compiladores puede parecer abrumadora. Hay miles de lenguajes fuente, desde los lenguajes de programación tradicionales, como FORTRAN o Pascal, hasta los lenguajes especializados que han surgido virtualmente en todas las áreas de aplicación de la informática, los lenguajes objeto son igualmente variados; un lenguaje objeto puede ser otro lenguaje de programación.


Durante la Compilación de un Programa se realizan las siguientes fases: 

Preprocesamiento: Transformaciones al Archivo Fuente, previas a la Compilación. 

Análisis Léxico: Reconocimiento de los Elementos del Lenguaje.

Análisis Sintáctico: Reconocimiento de la Estructura del Lenguaje.

Análisis Semántico: Reconocimiento de la coherencia de la Entrada.

Generación de Código Intermedio: Transformación de la Entrada en una representación de código intermedio para una máquina abstracta. 

Optimización de Código: Mejoras a la representación intermedia que resulten en un código más rápido de ejecutar.

Generación de Código: Transformación del código intermedio en código objeto.

Depuración: Reconocimiento de Errores. 

Administración de la Tabla de Símbolos:  Reconocimiento de los nombres de los identificadores utilizados en la Entrada y sus diferentes atributos. 

Estas fases no son en estricto rigor secuenciales, sino que los módulos que las implementan interactúan durante el proceso de compilación, complementando sus tareas, unos con otros. Sin embargo, a modo didáctico se plantea un esquema secuencial de fases, lo que permitirá el estudio de cada módulo en forma independiente.







Comentarios