Compilador Diseño - Descripción General



Los ordenadores son una mezcla equilibrada de software y hardware. Hardware es sólo un trozo de dispositivo mecánico y sus funciones están siendo controlados por un software compatible. Hardware entiende instrucciones en forma de carga electrónica, que es la contrapartida de lenguaje binario en programación de software. Lenguaje binario sólo tiene dos alfabetos, 0 y 1. Instruir a los códigos, el hardware debe ser escrito en formato binario, que es simplemente una serie de 1s y 0s. Sería una tarea difícil y engorroso para los programadores de computadoras para escribir los códigos de este tipo, que es la razón por la cual hemos compiladores para escribir esos códigos.

Sistema procesamiento de lenguaje

Hemos aprendido que cualquier sistema informático está compuesto por hardware y software. El hardware comprende un idioma, que los seres humanos no pueden comprender. Por lo tanto, escribir programas en lenguaje de alto nivel, que es más fácil para nosotros comprender y recordar. Estos programas son alimentados en una serie de herramientas y componentes de sistema operativo para obtener el código deseado que puede ser utilizada por la máquina. Esto es lo que se conoce como Sistema de procesamiento lingüístico.

Sistema de Procesamiento del Lenguaje

El lenguaje de alto nivel se convierte en lenguaje binario en distintas fases. Un compilador es un programa que convierte lenguaje de alto nivel a lenguaje ensamblador. De manera similar, un ensamblador es un programa que convierte el lenguaje ensamblador a lenguaje máquina.

En primer lugar vamos a entender cómo un programa, con compilador de C, se ejecuta en un equipo host.

  • Usuario escribe un programa en lenguaje C (lenguaje de alto nivel).

  • El compilador de C, compila el programa y lo traduce al programa de la asamblea (de bajo nivel).

  • Un ensamblador traduce el programa de la asamblea en el código máquina (objeto).

  • Una herramienta se utiliza para vincular a todas las partes del programa juntos para la ejecución (código máquina ejecutable).

  • Un cargador carga todos ellos en la memoria y, a continuación, se ejecuta el programa.

Antes de adentrarnos en los conceptos de compiladores, tenemos que entender algunas otras herramientas que trabajan de cerca con los compiladores.

Preprocesador

UN preprocesador, que generalmente se considera como una parte del compilador, es una herramienta que produce entradas para compiladores. Se trata de macro-transformación, ampliación, inclusión de archivos, extensión del lenguaje, etc.

Intérprete

Un intérprete, como un compilador, se traduce lenguaje de alto nivel a bajo nivel de lenguaje máquina. La diferencia radica en la manera en que leen el código fuente o a la entrada. Un compilador lee todo el código fuente a la vez, crea los tokens, cheques semántica, genera código intermedio, ejecuta el programa en su totalidad y puede implicar muchos pases. Por el contrario, un intérprete lee en un comunicado desde la entrada, se convierte en un código intermedio, ejecuta, luego toma la siguiente declaración en secuencia. Si se produce un error, un intérprete se detiene la ejecución y de los informes que, mientras que un compilador lee todo el programa, incluso si se encuentra con varios errores.

Ensamblador

Un ensamblador traduce los programas en lenguaje ensamblador a código máquina.La salida de un ensamblador se denomina un archivo objeto que contiene una combinación de instrucciones de máquina, así como los datos necesarios para realizar estas instrucciones en la memoria.

Vinculador

Linker es un programa de ordenador que los enlaces y combina varios archivos objeto junto con el fin de hacer un archivo ejecutable. Todos estos archivos podrían haber sido compilados por separado los ensambladores. La tarea principal de un linker es buscar y localizar/rutinas módulo al que se hace referencia en el programa y para determinar la ubicación de la memoria en estos códigos se ha cargado, con lo que el programa de instrucción referencias absolutas.

Pala cargadora

Loader es una parte del sistema operativo y es el responsable de cargar archivos ejecutables en la memoria y las ejecutan. Calcula el tamaño de un programa (instrucciones y datos) y crea espacio de memoria. Inicializa distintos registros para iniciar ejecución.

Compilador cruzado

Un compilador que se ejecuta en la plataforma (A) y es capaz de generar código ejecutable de la plataforma (B) se llama un compilador cruzado.

Fuente de compilador de código

Un compilador que tiene el código fuente de un lenguaje de programación y se traduce en el código fuente de otro lenguaje de programación se llama una fuente de fuente compilador.

Advertisements