You are on page 1of 19

Introducci on Seminario de Lenguajes opci on C Modalidad de la cursada

Plataformas Normas Horarios

Introducci on
Herramientas y compilaci on

Compilaci on de programas
Preprocesador Compilador Ensamblador y link-editor

Seminario de Lenguajes opci on C


Facultad de Inform atica Universidad Nacional de la Plata

Herramientas
GCC Editores e IDEs Consola Otras

2013

Resumen

Seminario de Lenguajes opci on C

Introducci on

Indice
Introducci on Seminario de Lenguajes opci on C Modalidad de la cursada
Plataformas Normas Horarios

Modalidad de la cursada Plataformas Normas Horarios Compilaci on de programas Preprocesador Compilador Ensamblador y link-editor Herramientas GCC Editores e IDEs Consola Otras Resumen
Seminario de Lenguajes opci on C Introducci on

Compilaci on de programas
Preprocesador Compilador Ensamblador y link-editor

Herramientas
GCC Editores e IDEs Consola Otras

Resumen

Modalidad de la cursada
Introducci on Seminario de Lenguajes opci on C

Explicaci on de pr actica en los horarios de teor a.


Modalidad de la cursada
Plataformas Normas Horarios

Consultas en las salas de PC. Asistencia recomendada. Comisiones para coloquios. Aprobaci on de la cursada: 2 evaluaciones por Moodle presenciales (se rinden en uno de los horarios de pr actica). Varias entregas pr acticas con coloquio en el turno elegido.

Compilaci on de programas
Preprocesador Compilador Ensamblador y link-editor

Herramientas
GCC Editores e IDEs Consola Otras

Resumen

Seminario de Lenguajes opci on C

Introducci on

Plataformas usadas
Introducci on Seminario de Lenguajes opci on C Modalidad de la cursada
Plataformas Normas Horarios

Moodle: https://catedras.info.unlp.edu.ar Todos los anuncios, fechas de entregas y fechas de

coloquios se publicar an u nicamente a trav es del Moodle de la c atedra.


El Moodle tiene un foro para consultas de pr actica. Los trabajos pr acticos se entregar an a trav es de un

Compilaci on de programas
Preprocesador Compilador Ensamblador y link-editor

servidor de Subversion* provisto por la c atedra.


Twitter de la c atedra: @seminariocunlp Problemas administrativos: flopez@linti.unlp.edu.ar

Herramientas
GCC Editores e IDEs Consola Otras

Resumen

Seminario de Lenguajes opci on C

Introducci on

Normas de convivencia
Introducci on Seminario de Lenguajes opci on C Modalidad de la cursada
Plataformas Normas Horarios

Las consultas en el foro deben ser claras y breves. Evitar subir im agenes grandes al foro. Se eliminar a del foro cualquier comentario ofensivo o que

no est e relacionado con la materia.


No se aceptar an trabajos pr acticos entregados por correo

Compilaci on de programas
Preprocesador Compilador Ensamblador y link-editor

electr onico ni por otros medios.


Los ayudantes no contestan consultas por e-mail. Usar las

Herramientas
GCC Editores e IDEs Consola Otras

consultas presenciales o el foro.


En el coloquio no se aceptar an versiones del trabajo

posteriores a la fecha de entrega.

Resumen

Seminario de Lenguajes opci on C

Introducci on

Horarios
Introducci on Seminario de Lenguajes opci on C Modalidad de la cursada
Plataformas Normas Horarios

Horarios de consulta Martes de 18 a 20hs Aula 8 Mi ercoles de 13:30 a 15hs Aula GNU/Linux Jueves de 10 a 12hs Aula GNU/Linux

Compilaci on de programas
Preprocesador Compilador Ensamblador y link-editor

Herramientas
GCC Editores e IDEs Consola Otras

Resumen

Seminario de Lenguajes opci on C

Introducci on

Proceso de compilaci on
Introducci on Seminario de Lenguajes opci on C Modalidad de la cursada
Plataformas Normas Horarios

Fuente Fuente Fuente

Preprocesador

Fuente Fuente Fuente

Compilacin

Compilaci on de programas
Preprocesador Compilador Ensamblador y link-editor

Fuente Fuente Assembler

Ensamblado

Fuente Fuente Objeto

Linkedicin

Herramientas
GCC Editores e IDEs Consola Otras

Ejecutable

Resumen

Seminario de Lenguajes opci on C

Introducci on

Preprocesador
Introducci on Seminario de Lenguajes opci on C Modalidad de la cursada
Plataformas Normas Horarios

Transforma el c odigo. Substituye texto. Es independiente del lenguaje C pero indispensable. Procesa las directivas que empiezan con #. Ejemplos:

Compilaci on de programas
Preprocesador Compilador Ensamblador y link-editor

Herramientas
GCC Editores e IDEs Consola Otras

# include < stdio .h > # include " ejemplo . h " # define test 5

Resumen

Seminario de Lenguajes opci on C

Introducci on

Compilador
Introducci on Seminario de Lenguajes opci on C Modalidad de la cursada
Plataformas Normas Horarios

Verica la sintaxis del programa. Advierte sobre potenciales errores sem anticos. Transforma el c odigo C en assembler. Puede optimizar el c odigo generado. Puede agregar informaci on extra para el debugger.

Compilaci on de programas
Preprocesador Compilador Ensamblador y link-editor

Herramientas
GCC Editores e IDEs Consola Otras

Resumen

Seminario de Lenguajes opci on C

Introducci on

Ensamblador y link-editor
Introducci on Seminario de Lenguajes opci on C Modalidad de la cursada
Plataformas Normas Horarios

Ensamblador:
Traduce c odigo assembler a c odigo de m aquina. El binario generado se denomina c odigo objeto.

Link-editor
Genera un archivo ejecutable a partir de uno o m as

Compilaci on de programas
Preprocesador Compilador Ensamblador y link-editor

c odigos objeto.
Se puede dividir el programa en m odulos y compilar cada

Herramientas
GCC Editores e IDEs Consola Otras

uno por separado, al modicar un m odulo s olo hay que compilar ese m odulo y volver a linkearlo con los otros c odigos objeto.
El proceso anterior ahorra tiempo en proyectos grandes.

Resumen

Seminario de Lenguajes opci on C

Introducci on

GCC
Introducci on Seminario de Lenguajes opci on C Modalidad de la cursada
Plataformas Normas Horarios

El GNU C Compiler, adem as de compilar, puede invocar a las otras herramientas. Invocando a GCC se puede hacer una sola etapa de las anteriores, o todas las etapas de una vez. Argumentos de gcc:
-E Preprocesa. -S Compila (genera c odigo assembler) -c Ensambla (genera c odigo objeto). -o Permite indicar el nombre del archivo de salida. Sin argumentos realiza todos los pasos. -std=c99 Est andar C usado. -Wall Muestra las advertencias.

Compilaci on de programas
Preprocesador Compilador Ensamblador y link-editor

Herramientas
GCC Editores e IDEs Consola Otras

Resumen

Ejemplos
Seminario de Lenguajes opci on C Introducci on

GCC
Introducci on Seminario de Lenguajes opci on C Modalidad de la cursada
Plataformas Normas Horarios

El GNU C Compiler, adem as de compilar, puede invocar a las otras herramientas. Invocando a GCC se puede hacer una sola etapa de las anteriores, o todas las etapas de una vez. Argumentos de gcc:
-E Preprocesa. -S Compila (genera c odigo assembler) -c Ensambla (genera c odigo objeto). -o Permite indicar el nombre del archivo de salida. Sin argumentos realiza todos los pasos. -std=c99 Est andar C usado. -Wall Muestra las advertencias.

Compilaci on de programas
Preprocesador Compilador Ensamblador y link-editor

Herramientas
GCC Editores e IDEs Consola Otras

Resumen

Ejemplos
Seminario de Lenguajes opci on C Introducci on

GCC
Introducci on Seminario de Lenguajes opci on C Modalidad de la cursada
Plataformas Normas Horarios

El GNU C Compiler, adem as de compilar, puede invocar a las otras herramientas. Invocando a GCC se puede hacer una sola etapa de las anteriores, o todas las etapas de una vez. Argumentos de gcc:
-E Preprocesa. -S Compila (genera c odigo assembler) -c Ensambla (genera c odigo objeto). -o Permite indicar el nombre del archivo de salida. Sin argumentos realiza todos los pasos. -std=c99 Est andar C usado. -Wall Muestra las advertencias.

Compilaci on de programas
Preprocesador Compilador Ensamblador y link-editor

Herramientas
GCC Editores e IDEs Consola Otras

Resumen

Ejemplos
Seminario de Lenguajes opci on C Introducci on

Entornos de desarrollo integrados (IDEs) y editores


Introducci on Seminario de Lenguajes opci on C Modalidad de la cursada
Plataformas Normas Horarios

Existen IDEs para todos los gustos:


Anjuta Codeblocks KDevelop NetBeans Eclipse

Compilaci on de programas
Preprocesador Compilador Ensamblador y link-editor

Pero tambi en hay editores para programadores:


Gedit (recomendado) Geany Vim JEdit

Herramientas
GCC Editores e IDEs Consola Otras

Resumen

La c atedra no fuerza el uso de ninguna de estas opciones, pero es obligatorio saber compilar con gcc desde la terminal.
Seminario de Lenguajes opci on C Introducci on

Entornos de desarrollo integrados (IDEs) y editores


Introducci on Seminario de Lenguajes opci on C Modalidad de la cursada
Plataformas Normas Horarios

Existen IDEs para todos los gustos:


Anjuta Codeblocks KDevelop NetBeans Eclipse

Compilaci on de programas
Preprocesador Compilador Ensamblador y link-editor

Pero tambi en hay editores para programadores:


Gedit (recomendado) Geany Vim JEdit

Herramientas
GCC Editores e IDEs Consola Otras

Resumen

La c atedra no fuerza el uso de ninguna de estas opciones, pero es obligatorio saber compilar con gcc desde la terminal.
Seminario de Lenguajes opci on C Introducci on

Entornos de desarrollo integrados (IDEs) y editores


Introducci on Seminario de Lenguajes opci on C Modalidad de la cursada
Plataformas Normas Horarios

Existen IDEs para todos los gustos:


Anjuta Codeblocks KDevelop NetBeans Eclipse

Compilaci on de programas
Preprocesador Compilador Ensamblador y link-editor

Pero tambi en hay editores para programadores:


Gedit (recomendado) Geany Vim JEdit

Herramientas
GCC Editores e IDEs Consola Otras

Resumen

La c atedra no fuerza el uso de ninguna de estas opciones, pero es obligatorio saber compilar con gcc desde la terminal.
Seminario de Lenguajes opci on C Introducci on

Terminal/Consola
Introducci on Seminario de Lenguajes opci on C Modalidad de la cursada
Plataformas Normas Horarios

Comandos b asicos (dentro de Cygwin es lo mismo):


pwd Directorio actual. ls Muestra el contenido de un directorio. cat archivo Muestra el contenido del archivo. cd directorio Se posiciona en el directorio indicado. cd .. Vuelve al directorio padre. man 3 printf man ls o man gcc help cd programa instalado ./programa sin instalar
Seminario de Lenguajes opci on C Introducci on

Compilaci on de programas
Preprocesador Compilador Ensamblador y link-editor

Herramientas
GCC Editores e IDEs Consola Otras

Resumen

Otras herramientas u tiles


Introducci on Seminario de Lenguajes opci on C Modalidad de la cursada
Plataformas Normas Horarios

manpages o http://man.cx make gdb ddd valgrind

Compilaci on de programas
Preprocesador Compilador Ensamblador y link-editor

Herramientas
GCC Editores e IDEs Consola Otras

Resumen

Seminario de Lenguajes opci on C

Introducci on

Resumen
Introducci on Seminario de Lenguajes opci on C Modalidad de la cursada
Plataformas Normas Horarios

C omo se aprueba la cursada. Qu e hace el

preprocesador/compilador/ensamblador/linker.
C omo invocarlos desde la terminal. Es necesario aprender a usar alg un IDE?. Es necesario que aprenda a invocar gcc desde la terminal?

Compilaci on de programas
Preprocesador Compilador Ensamblador y link-editor

Herramientas
GCC Editores e IDEs Consola Otras

Resumen

Seminario de Lenguajes opci on C

Introducci on

You might also like