Buscar este blog

sábado, 11 de septiembre de 2010

COMPILADOR

Los compiladores son programas o herramientas encargadas de compilar. Un compilador toma un texto (código fuente) escrito en un lenguaje de alto nivel y lo traduce a un lenguaje comprensible por las computadoras (código objeto).
El compilador es un programa que se encarga de traducir los programas escritos por el programador en lenguaje de alto nivel (entendible por el ser humano) a un lenguaje de bajo nivel que es el comprensible por la máquina y que, de esta manera, permite que pueda ser ejecutado por la computadora. Sería la transformación del código fuente a un lenguaje máquina o código objeto.
Básicamente, existen dos grandes formas de ejecutar programas: programas compilados (previamente pasados por un compilador) y programas interpretados (necesitan pasar por un intérprete para ejecutarse en tiempo real).
Características de un compilador
Generalmente un compilador se divide en dos partes:* Front End: parte que analiza el código fuente, comprueba su validez, genera el árbol de derivación y rellena los valores de la tabla de símbolos. Parte que suele ser independiente de la plataforma o sistema operativo para el que funcionará.* Back End: parte en donde se genera el código máquina exclusivo para una plataforma a partir de lo analizado en el front end.Por lo general el resultado del back end no puede ser ejecutado directamente, se necesita pasar por un proceso de enlazado (linker).Existen varios tipos de compiladores: Compiladores cruzados, Compiladores optimizadores, Compiladores de una sola pasada, Compiladores de varias pasadas, Compiladores JIT (Just In Time).
Para poder entender mejor cómo realiza su tarea, es conveniente conocer las diversas fases que cumple un compilador para lograr la traducción.
Las primeras tres fases son de análisis: análisis léxico, sintáctico y
semántico, fases en las que se leen los caracteres del código fuente, se analizan, se comprueban si son válidos y se van reagrupando en secuencias lógicas y frases gramaticales. Esta primera parte es la que se conoce como Front End.
Y las últimas tres fases son las de síntesis: generación de
código intermedio, optimización de código y generación de código, que son en las que -a partir del análisis anterior- se genera la traducción para convertirlo en código objeto o lenguaje máquina. Esta segunda parte se denomina Back End.
Durante todo este proceso, se va ejecutando en forma permanente el manejador de errores, que se encarga de analizar en cada una de las fases los posibles errores que puede haber durante el proceso de la traducción.

No hay comentarios:

Publicar un comentario