Está en la página 1de 15

Compilador GCC

Por Donato Galo

Qu es el Compilador?
Programa Programainformtico informticoque quetraduce traduceun unprograma programaescrito escritoen enun unlenguaje lenguaje de deprogramacin programacina aotro otrolenguaje lenguajede deprogramacin, programacin,generando generandoun un programa programaequivalente equivalenteque quela lamquina mquinaser sercapaz capazde deinterpretar. interpretar. Usualmente Usualmenteel elsegundo segundolenguaje lenguajees eslenguaje lenguajede demquina, mquina,pero pero tambin tambinpuede puedeser serun uncdigo cdigointermedio intermedio(bytecode), (bytecode),o osimplemente simplemente texto. texto.Este Esteproceso procesode detraduccin traduccinse seconoce conocecomo comocompilacin. compilacin.

Diagrama a bloques de la operacin de un buen compilador

Partes de un compilador - Anlisis


Se Setrata tratade dela lacomprobacin comprobacinde dela lacorreccin correccindel delprograma programafuente, fuente,e e incluye incluyelas lasfases fasescorrespondientes correspondientesal alAnlisis Anlisislxico, lxico,Anlisis Anlisissintctico sintctico y yAnlisis Anlisissemntico. semntico.

Anlisis AnlisisLxico: Lxico:consiste consisteen enla ladescomposicin descomposicindel delprograma programafuente fuente en encomponentes componenteslxicos. lxicos.

Anlisis AnlisisSintctico: Sintctico:agrupacin agrupacinde delos loscomponentes componenteslxicos lxicosen en frases frasesgramaticales. gramaticales.

Anlisis AnlisisSemntico: Semntico:comprobacin comprobacinde dela lavalidez validezsemntica semnticade delas las sentencias sentenciasaceptadas aceptadasen enla lafase fasede deAnlisis AnlisisSintctico. Sintctico.

Partes de un compilador - Sntesis


Su Suobjetivo objetivoes esla lageneracin generacinde dela lasalida salidaexpresada expresadaen enel ellenguaje lenguaje objeto. objeto.

Suele Sueleestar estarformado formadopor poruna unao ovarias variascombinaciones combinacionesde defases fasesde de Generacin Generacinde deCdigo Cdigo(normalmente (normalmentese setrata tratade decdigo cdigointermedio intermedioo o de decdigo cdigoobjeto). objeto).

Y Yde deOptimizacin Optimizacinde deCdigo Cdigo(en (enlas lasque quese sebusca buscaobtener obtenerun uncdigo cdigo lo loms mseficiente eficienteposible). posible).

Compilador GCC
La Lasigla siglaGCC GCCsignifica significa"GNU "GNUCompiler CompilerCollection". Collection".Originalmente Originalmente significaba significaba"GNU "GNUC CCompiler". Compiler".

GNU GNUCompiler CompilerCollection Collection(coleccin (coleccinde decompiladores compiladoresGNU). GNU).Es Esun un conjunto conjuntode decompiladores compiladorescreados creadospor porel elproyecto proyectoGNU. GNU.

GCC GCCes esun uncompilador compiladorintegrado integradodel delproyecto proyectoGNU GNUpara paraC, C,C++, C++, Objective-C, Objective-C,Objective-C++, Objective-C++,Java, Java,Fortran, Fortran,Ada, Ada,y yGo. Go.

Actualmente Actualmentese seencuentra encuentraen enla laversin versin4.7.2 4.7.2

Compilador GCC
Es Escapaz capazde derecibir recibirun unprograma programafuente fuenteen encualquiera cualquierade deestos estos lenguajes lenguajesy ygenerar generarun unprograma programaejecutable ejecutablebinario binarioen enel ellenguaje lenguajede de la lamquina mquinadonde dondeha hade decorrer. correr.

GCC GCCes essoftware softwarelibre librey ylo lodistribuye distribuyela laFree FreeSoftware SoftwareFoundation Foundation (FSF) (FSF)bajo bajola lalicencia licenciageneral generalpblica pblicaGPL. GPL.

Estos Estoscompiladores compiladoresse seconsideran consideranestndar estndarpara paralos lossistemas sistemas operativos operativosderivados derivadosde deUNIX, UNIX,de decdigo cdigoabierto abiertoy ytambin tambinde de propietarios, propietarios,como comoMac MacOS OSX. X.
GCC GCCrequiere requiereel elconjunto conjuntode deaplicaciones aplicacionesconocido conocidocomo comobinutils binutilspara para realizar realizartareas tareascomo comoidentificar identificararchivos archivosobjeto objetou uobtener obtenersu sutamao tamaopara para copiarlos, copiarlos,traducirlos traducirloso ocrear crearlistas, listas,enlazarlos, enlazarlos,o oquitarles quitarlessmbolos smbolos innecesarios. innecesarios.

Sintaxis

$ gcc [opciones] fichero ...

Opciones
-o archivo
indica el nombre del archivo de salida, cualesquiera sean las etapas cumplidas.

-c
realiza preprocesamiento y compilacin, obteniendo el archivo en cdigo objeto; no realiza el enlazado.

-E
realiza solamente el preprocesamiento, enviando el resultado a la salida estndar.

-v
muestra los comandos ejecutados en cada etapa de compilacin y la versin del compilador. Es un informe muy detallado.

Opciones
-Iruta
especifica la ruta hacia el directorio donde se encuentran los archivos marcados para incluir en el programa fuente.

-Lruta
especifica la ruta hacia el directorio donde se encuentran los archivos de biblioteca con el cdigo objeto de las funciones referenciadas en el programa.

-Wall
muestra todos los mensajes de error y advertencia del compilador, incluso algunos cuestionables pero en definitiva fciles de evitar escribiendo el cdigo con cuidado.

-g
incluye en el ejecutable generado la informacin necesaria para poder rastrear los errores usando un depurador, tal como GDB (GNU Debugger).

Ejemplos
$ gcc hola.c
Compila el programa en C hola.c, genera un archivo ejecutable a.out.

$ gcc hola.c -o hola


Compila el programa en C hola.c, genera un archivo ejecutable hola.

$ gcc hola.c -o ~/bin/hola


Genera el ejecutable hola en el subdirectorio bin del directorio propio del usuario.

Ejemplos
$ gcc -c hola.c
No genera el ejecutable, sino el cdigo objeto, en el archivo hola.o. Si no se indica un nombre para el archivo objeto, usa el nombre del archivo en C y le cambia la extensin por .o.

$ gcc -c hola.c -o objeto.o


Genera el cdigo objeto indicando el nombre de archivo.

Ejemplos
$ gcc hola.c -L/lib -L/usr/lib
Indica dos directorios donde han de buscarse bibliotecas. La opcin -L debe repetirse para cada directorio de bsqueda de bibliotecas.

$ gcc hola.c -I/usr/include


Indica un directorio para buscar archivos de encabezado (de extensin .h).

Referencias

http://es.wikipedia.org/wiki/Compilador http://es.wikipedia.org/wiki/Compilador http://www.alegsa.com.ar/Dic/compilador.php http://www.alegsa.com.ar/Dic/compilador.php http://gcc.gnu.org/ http://gcc.gnu.org/ http://es.wikipedia.org/wiki/GNU_Compiler_Collection http://es.wikipedia.org/wiki/GNU_Compiler_Collection http://iie.fing.edu.uy/~vagonbar/gcc-make/gcc.htm http://iie.fing.edu.uy/~vagonbar/gcc-make/gcc.htm

Fin!!!

También podría gustarte