Programacion g

Páginas: 9 (2172 palabras) Publicado: 7 de enero de 2011
2 Estructura y fases de creación de un programa C

Un programaC está formado exclusivamente porfunciones independientes. A diferencia de lenguajes
como PASCAL, en C no se puede crear una función dentro de otra función.
El código de un programa C suele distribuirse entre varios ficheros fuente (con extensión .c), denomi- nadosmódulos. Así, habitualmente un programa de cierto tamaño constaráde un módulo que contiene el programa principal (ubicado en una función especial denominadamain()), y de otros módulos con el có- digo de diversas funciones agrupadas según algún criterio, o con definiciones de tipos utilizados. Además, todos los compiladores ponen a disposición del programador una enorme cantidad de funciones, accesibles por medio de librerías (ver sección 7.4). De hecho, si elprograma es suficientemente pequeño puede constar de un sólo módulo, el principal, que haga uso de las librerías.

2 Estructura y fases de creación de un programa C
Un programaC está formado exclusivamente porfunciones independientes. A diferencia de lenguajes
como PASCAL, en C no se puede crear una función dentro de otra función.
El código de un programa C suele distribuirse entre variosficheros fuente (con extensión .c), denomi- nadosmódulos. Así, habitualmente un programa de cierto tamaño constará de un módulo que contiene el programa principal (ubicado en una función especial denominadamain()), y de otros módulos con el có- digo de diversas funciones agrupadas según algún criterio, o con definiciones de tipos utilizados. Además, todos los compiladores ponen a disposición delprogramador una enorme cantidad de funciones, accesibles por medio de librerías (ver sección 7.4). De hecho, si el programa es suficientemente pequeño puede constar de un sólo módulo, el principal, que haga uso de las librerías.
En la Figura se muestran las 4 fases en la creación de un programa ejecutable desarrollado en el lenguaje
C.
fuente C
original
Codigo
C puro
Codigo
ObjetoEjecutable
fichero.c
fichero.i
fichero.o
a.out (-o fichero)
Codigo
Preprocesador
Compilador
Ensamblador
Ensamblador
Codigo fuente
fichero.s
(Linker)
Enlazador
ld (gcc)
cc1 (gcc -S)
cpp (gcc -E -o fichero.i)
as (gcc -c)
2
Preprocesado: El código C desarrollado es enviado al preprocesador que interpreta y ejecuta todas
las directivas de preprocesado (ver sección 4).De esta tarea se encarga el programacpp, que tam-
bién
¡
puede ser invocado con la opción de parada-E del compilador (indicando adicionalmente-o
fichero.i).
Compilación: El código C generado por el preprocesador es analizado sintáctica, léxica y semántica- mente por el compilador. Si el análisis es correcto, se genera el correspondiente código en lenguaje ensamblador. Adicionalmente, elcompilador suele realizar un importante número de optimizaciones. Esta tarea es realizada por el programacc1, que también puede ser invocado con la opción de parada
-Sdel compilador (por defecto se generafichero.s, no siendo necesaria la opción-o).
Ensamblado: El código en ensamblador es transformado en código binario (objeto), tarea que realiza
el programaas, que también puede ser invocadocon la opción de parada-c del compilador (por defecto
se generafichero.o, no siendo necesaria la opción-o).
Enlazado: Es la operación final consistente en agrupar los ficheros objeto de todos los módulos y librerías, y editar los enlaces para generar el ejecutable. Esta compleja tarea es realizada por el pro- gramald, que es invocado finalmente por el compilador, por lo que basta con no usarninguna opción de parada. Habitualmente se usa la opción-o para indicar el nombre del fichero ejecutable, que por defecto esa.out.
Normalmente, dado el elevado número de parámetros que requieren los distintos programas en cada fase, nunca se utilizan individualmente, sino a través del compilador que se encarga de invocarlos. Así, las fases invocadas por el compilador dependerán de la extensión...
Leer documento completo

Regístrate para leer el documento completo.

Estos documentos también te pueden resultar útiles

  • G
  • G?????
  • G
  • G
  • G
  • G
  • G
  • G

Conviértase en miembro formal de Buenas Tareas

INSCRÍBETE - ES GRATIS