2. TRABAJO EN CLASE
Un compilador es un programa informático que traduce un programa escrito en
un lenguaje de programación a otro lenguaje de programación, generando un
programa equivalente que la máquina será capaz de interpretar. Usualmente el
segundo lenguaje es lenguaje de máquina, pero también puede ser un código
intermedio (byte code), o simplemente texto. Este proceso de traducción se
conoce como compilación.1
Un compilador es un programa que permite traducir el código fuente de un
programa en lenguaje de alto nivel, a otro lenguaje de nivel inferior (típicamente
lenguaje de máquina). De esta manera un programador puede diseñar un
programa en un lenguaje mucho más cercano a como piensa un ser humano,
para luego compilarlo a un programa más manejable por una computadora.
Como parte importante de este proceso de traducción, el compilador informa a su
usuario de la presencia de errores en el programa fuente.
3. EL COMPILADOR PARA LINUX
Si bien existen otros compiladores, lo más usual y más sencillo
para compilar un programa en GNU/Linux es
el compilador gcc, ya que es el que se incluye en todas las
distribuciones.
De cualquier forma, es posible realizar la compilación desde
línea de comandos o desde el entorno gráfico.
Para realizarla desde línea de comandos, será necesario
contar con una terminal (xterm, konsole, gnome-terminal, etc).
No es necesario contar con permisos de root para crear o
compilar programas.
4. ETAPAS O FASES PARA LA COMPILACIÓN
a compilación es el proceso de traducción de programas fuente a programas objeto.
El programa objeto obtenido de la compilación ha sido traducido normalmente al
código común del lenguaje de máquina.
Para conseguir el programa máquina real se debe utilizar un programa llamado
montador o enlazador (linker). El proceso de montaje conduce a un programa en
lenguaje máquina directamente ejecutable. Existen diversas fases de compilación o
también llamadas etapas de la compilación:
• Programa Fuente
• Compilador
• Programa Objeto
• Linker
• Ejecutable en Lenguaje Máquina
5. • Programa fuente: Programa escrito en un lenguaje de alto nivel (texto ordinario
que contiene las sentencias del programa en un lenguaje de programación).
Necesita ser traducido a código máquina para poder ser ejecutado.
• Compilador: Programa encargado de traducir los programas fuentes escritos en
un lenguaje de alto nivel a lenguaje máquina y de comprobar que las llamadas a las
funciones de librería se realizan correctamente.
• Programa (o código) objeto: Es el programa fuente traducido (por el compilador)
a código máquina. Aún no es directamente ejecutable.
• Linker (montador o enlazador): Es el programa encargado de insertar al
programa objeto el código máquina de las funciones de las librerías (archivos de
biblioteca) usadas en el programa y realizar el proceso de montaje, que producirá
un programa ejecutable .exe. Las librerías son una colección de código (funciones)
ya programado y traducido a código máquina, listo para utilizar en un programa y
que facilita la labor del programador.
• Programa Ejecutable: Traducción completa a código máquina, realizada por el
enlazador, del programa fuente y que ya es directamente ejecutable.
6. EL COMPILADOR PARA WINDOWS
• Para compilar un programa C en entornos Windows, debemos seguir una serie de pasos
que varían según el compilador de C que queramos utilizar. Antes que nada, sería bueno
que se revises la documentación del compilador elegido para conocer los comandos
exactos.
• Compilación del código fuente
Si se utiliza un entorno de desarrollo, será posible compilar directamente desde el entorno,
mediante un botón o una combinación de teclas.
Si se ejecuta el compilador desde la línea de comandos, la línea será distinta según
compilador utilizado. A continuación algunos ejemplos de ciertos comandos según el
compilador:
•En C++ de Borland: bcc hola.c
•En Visual C de Microsoft: cl hola.c
•En GNU gcc: gcc hola.c o cc hola.c
•El C de Zortech: ztc hola.c
•En Turbo C de Borland es: tcc hola.c
el