Compiladores

Un compilador es querer traducir un programa de un lenguaje de alto nivel, a otro lenguaje de nivel inferior (típicamente lenguaje máquina). 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).

Fases del compilador

El primer paso se llama compilación (propiamente dicho) y traduce el código fuente escrito en un lenguaje de programación almacenado en un archivo a código en bajo nivel (normalmente en código objeto, no directamente a lenguaje máquina). El segundo paso se llama enlazado en el cual se enlaza el código de bajo nivel generado de todos los ficheros y subprogramas que se han mandado compilar y se añade el código de las funciones que hay en las bibliotecas del compilador para que el ejecutable pueda comunicarse directamente con el sistema operativo, traduciendo así finalmente el código objeto a código máquina, y generando un módulo ejecutable. Estos dos pasos se pueden hacer por separado, almacenando el resultado de la fase de compilación en archivos objetos (un típico.obj para Microsoft Windows, DOS o para Unix); para enlazarlos en fases posteriores, o crear directamente el ejecutable; con lo que la fase de compilación se almacena sólo temporalmente. Un programa podría tener partes escritas en varios lenguajes (por ejemplo C, C++ y Asm), que se podrían compilar de forma independiente y luego enlazar juntas para formar un único módulo ejecutable.

Clasificacion de compiladores

DE UNA PASADA: Examina el código fuente una vez, generando el código o programa objeto.
PASADAS MÚLTIPLES: Requiere pasos intermedios para producir código en otro lenguaje y una pasada final para producir y optimizar el código producido durante pasos anteriores.

Tipos de compiladores

COMPILADORES INCREMENTALES: Generan un código objeto, instrucción por instrucción cuando el usuario teclea cada orden individual.
COMPILADOR CRUZADO: Se genera código en lenguaje objeto para una maquina diferente a la que se esta utilizando para compilar.
COMPILADOR CON MONTADOR: Compila distintos módulos de forma independiente y después es capaz de aplazarlos.
AUTO COMPILADORES: Compilador que esta escrito en el mismo lenguaje que va a compilar.
META COMPILADOR: Es programa que recibe como entrada las especificaciones del lenguaje para el que se desea obtener un compilador y genera como salida el compilador para ese lenguaje.
DESCOMPILADOR: Es un programa que acepta como entrada código maquina y la traduce a un lenguaje de alto nivel realizando el proceso inverso a la compilación.

No hay comentarios:

Publicar un comentario