sábado, 7 de abril de 2012


El compilador gcc



Para traducir un programa a un archivo objeto ejecutable pero este esta escrito en un lenguaje de alto nivel se necesita pasar un proceso o mejor dicho consta de varias etapas.

En la siguiente imagen se muestran las etapas que corresponden al conjunto de herramientas de compilación gcc que permite traducir programas escritos en lenguaje de programación C.




Para poder ejemplificar los pasos usaremos un ejemplo en este caso un programa en C llamado hola_mundo.c.

En gcc para traducir este programa fuente a un archivo objeto ejecutable. Esto se realizara a través de las cuatro etapas mencionadas en la imagen. Para traducirlo ponemos el siguiente comando en la terminal.

El compilador lee el archivo hola_mundo.c y lo traduce al archivo objeto ejecutable hola_mundo.

En la primera etapa que es la del pre-procesador (cpp) modifica el  programa original de acuerdo a lo indicado por las directivas que comienzan con el carácter #.

En este caso la línea #include <stdio.h> le indica al pre-procesador que debe leer el archivo de encabezado stdio.h e insertar su contenido en el texto del programa.

La salida de esta etapa es el archivo intermedio hola_mundo.i:





Después de esto hola_mundo.i entra en la etapa siguiente que es la de compilador (ccl) el cual nos traduce el programa a lenguaje ensamblador. La salida de esta etapa es hola_mundo.s





A continuación pasamos a la etapa siguiente en donde el ensamblador (as) lee el archivo hola_mundo.s y lo traduce en instrucciones de lenguaje de maquina generando un archivo objeto re localizable el cual se guarda como hola_mundo.o:





Después el enlazador (ld) enlaza ese archivo objeto con otros archivos asociados a él,  en este caso ya que el programa llama una biblioteca el enlazador se encarga de enlazar el programa con esta biblioteca en particular. Su salida es un archivo ejecutable llamado hola_mundo.







No hay comentarios:

Publicar un comentario