Compiladores

Un compilador es un programa que traduce las instrucciones de un lenguaje de alto nivel (lenguaje fuente), a instrucciones en lenguaje máquina (lenguaje destino) que la computadora puede leer, interpretar y ejecutar.

Una de las funciones más importantes que tienen los compiladores es la de reportar cualquier error en el programa fuente que se detecte durante el proceso de traducción.

Generalmente los compiladores tienen dos grandes partes:

1. Back end: es específico de la plataforma y es la parte que se encarga de generar el código máquina a partir de los resultados de la fase de análisis. Dicho código normalmente no se puede ejecutar de manera directa, para ello requiere de otro programa llamado enlazador.

2. Front end: es independiente de la plataforma y es la parte encargada de analizar el código fuente, comprobar la validez, generar el árbol de derivación y rellenar la tabla de símbolos.

Existen categorías de compiladores que tienen que ver con la manera en que generan y hacen uso del código. Las categorías no son excluyentes, es decir, un compilador puede pertenecer a una o más categorías. Las categorías son:

Compilador optimizador: realiza cambios en el código para hacerlo más eficiente pero mantiene la funcionalidad del programa original.

Compilador cruzado: genera código para una plataforma distinta de la que se está operando.

Compilador JIT (Just In Time): compila partes de código según se necesite, ya que forma parte de un intérprete.

Compilador de una sola pasada: genera código máquina a partir de la primera lectura del código fuente.

Compilador de varias pasadas: produce el código máquina después de haber leído varias veces el código fuente.

Fuente: Apuntes de Informática VII de la FCA de la UNAM