Sei sulla pagina 1di 15

JULIO CSAR GARCA MALDONADO INSTITUTO UNIVERSITARIO DE MXICO COMPILADORES I.S.

Compiladores Un compilador es un programa informtico que traduce un programa escrito en un lenguaje de programacin a otro lenguaje de programacin, generando un programa equivalente que la mquina ser capaz de interpretar. Usualmente el segundo lenguaje es lenguaje de mquina, pero tambin puede ser un cdigo intermedio (bytecode), o simplemente texto. Este proceso de traduccin se conoce como compilacin. Un compilador es un programa que permite traducir el cdigo fuente de un programa en lenguaje de alto nivel, a otro lenguaje de nivel inferior (tpicamente lenguaje de mquina). De esta manera un programador puede disear un programa en un lenguaje mucho ms cercano a como piensa un ser humano, para luego compilarlo a un programa ms manejable por una computadora.

Faces de un compilador. La construccin de un compilador involucra la divisin del proceso en una serie de fases que variar con su complejidad. Generalmente estas fases se agrupan en dos tareas: el anlisis del programa fuente y la sntesis del programa objeto. Anlisis: Se trata de la comprobacin de la correccin del programa fuente, e incluye las fases correspondientes: Anlisis lxico Anlisis sintctico Anlisis semntico Sntesis: Su objetivo es la generacin de la salida expresada en el lenguaje objeto y suele estar formado por una o varias combinaciones de fases de Generacin de Cdigo y de Optimizacin de Cdigo.

Proceso de compilacin. Es el proceso por el cual se traducen las instrucciones escritas en un determinado lenguaje de programacin a lenguaje mquina. Adems de un traductor, se pueden necesitar otros programas para crear un programa objeto ejecutable. Un programa fuente se puede dividir en mdulos almacenados en archivos distintos. La tarea de reunir el programa fuente a menudo se confa a un programa distinto, llamado preprocesador. El preprocesador tambin puede expandir abreviaturas, llamadas a macros, a proposiciones del lenguaje fuente.

En 1946 se desarroll la primera computadora digital. Pronto los primeros usuarios de estos ordenadores descubrieron la ventaja de escribir sus programas mediante claves ms fciles de recordar que esos cdigos; Pese a todo, el lenguaje ensamblador segua siendo el de una mquina, pero ms fcil de manejar. Los trabajos de investigacin se orientaron hacia la creacin de un lenguaje que expresara las distintas acciones a realizar de una manera lo ms sencilla posible para una persona. El primer compilador fue escrito por Grace Hopper, en 1952 para el lenguaje de programacin A-0. En 1954 se empez a desarrollar un lenguaje que permita escribir frmulas matemticas de manera traducible por un ordenador; le llamaron FORTRAN (FORmulae TRANslator). Surgi as por primera vez el concepto de un traductor como un programa que traduca un lenguaje a otro lenguaje. En el caso particular de que el lenguaje a traducir es un lenguaje de alto nivel y el lenguaje traducido de bajo nivel, se emplea el trmino compilador

En un sentido ms amplio, un compilador traduce las instrucciones que el usuario hace a instrucciones que la computadora pueda interpretar y ejecutar. Por lo tanto estas instrucciones son pulsaciones electrnicas ejecutables y para cada lenguaje de programacin se requiere un compilador separado. Una sola pasada: se examina el cdigo fuente una vez, generando el cdigo o programa objeto.

Pasadas mltiples: se requieren pasos intermedios para producir un cdigo en otro lenguaje, y una pasada final para producir y optimizar el cdigo producido durante los pasos anteriores.

Incrementales: generan un cdigo objeto instruccin por instruccin cuando el usuario teclea cada orden individual. Ensamblador: el lenguaje fuente es el lenguaje ensamblador y posee estructura sencilla. Compilador cruzado: genera cdigo en lenguaje objeto para una mquina diferente de la que se est usando para compilar. Un ejemplo es construir un compilador de Pascal que genere cdigo para MS-DOS y que el compilador funcione en LINUX y se haya escrito en C++. Compilador con montador: compila distintos mdulos de forma independiente y despus es capaz de enlazarlos.

Auto-compilador: compilador que est escrito en el mismo lenguaje que va a compilar. Lgicamente no se puede ejecutar a la primera vez. Meta-compilador: recibe como entrada las especificaciones del lenguaje para que el que se desea obtener un compilador y genera como salida el compilador deseado. Sin embargo tiene una dificultad de unir la generacin de cdigo con la parte de anlisis. Descompilador: programa que acepta como entrada cdigo mquina y lo traduce a un lenguaje de alto nivel.

El lenguaje de programacin C es compilado, as que en este caso necesitaremos un compilador, que ser el encargado de transformar nuestro cdigo fuente en cdigo que la computadora pueda ejecutar. Adems, para facilitar la tarea de los programadores existen los denominados Entorno de desarrollo integrados (IDE). En muchos casos, estos entornos incluyen un compilador, un depurador, y otras herramientas. Las herramientas a instalar dependern del sistema operativo utilizado.

Windows
Uno de los entornos de desarrollo ms conocidos entre los programadores de C sobre Windows, es el Bloodshed Dev-C++, que es un entorno libre multiplataforma. Tal entorno de desarrollo fue abandonado y retomado mejorndolo pasando a llamarse WxDev-C++. Otro entorno libre y gratuito es el Code::Blocks. Tambin hay otras alternativas privativas como los compiladores de Borland o de Microsoft

Si se ejecuta el compilador desde la lnea de comandos, la lnea ser distinta segn el compilador utilizado. A continuacin algunos ejemplos de ciertos comandos segn el compilador: En Turbo C de Borland es: tcc hola.c 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

Una vez compilado el cdigo fuente se genera un archivo llamado archivo objeto o programa objeto que es luego enlazado mediante el enlazador, para generar el archivo ejecutable. Segn el compilador y la configuracin utilizada, se obtendrn dos o tres archivos:
El archivo fuente: hola.c El archivo objeto: hola.obj El archivo ejecutable: hola.exe

GNU/Linux Ser necesario tener instaladas las herramientas gcc y make y la versin 6 de la glibc con su documentacin, que son las que permitirn compilar los programas. Para escribir y modificar el cdigo, es posible utilizar cualquier editor de texto plano,como son emacs, vim, kate, gedit o geany. Sin embargo, para quienes son novatos en la programacin, es recomendable utilizar un entorno de desarrollo como son el Anjuta DevStudio o Kdevelop, ya que incluyen facilidades adicionales para la ejecucin y solucin de problemas.

En esa terminal ser necesario escribir gcc hola.c


Si no existen errores en el cdigo, este comando nos crear un archivo ejecutable, que por omisin se llama "a.out", y que podemos ejecutar desde la lnea de comandos de la siguiente forma: ./a.out Hola mundo pasando como parmetro al compilador la opcin -o, de la siguiente forma: gcc hola.c -o hola Para ejecutarlo, haremos los mismo que en el caso anterior: ./hola gcc hola.c -o hola -Wall pedantic

La opcin -Wall nos mostrar todos los avisos que produzca el compilador, no solamente los errores. Los avisos nos indican dnde y/o porqu podra surgir algn error en nuestro programa.

Potrebbero piacerti anche