Este documento describe las fases del proceso de programación en lenguaje C, incluyendo la edición del código fuente, preprocesamiento, compilación, enlace y depuración. Explica que la edición crea el código fuente, el preprocesador realiza modificaciones, la compilación genera el código objeto, el enlace combina las bibliotecas, y la depuración corrige errores para producir un ejecutable.
1. Unidad 3
Lesly Evanelly González
Barrera
4°A Informatica
“ Aplicar los principios de
la programación en la
solución de problemas”.
2. 3.- Poner a punto el programa mediante el uso de un
editor de lenguaje de programación estructurado.
Fases de la Puesta a Punto de un Programa en Lenguaje C
¿Qué pasos hay que dar para convertir un algoritmo en un programa?
Para convertir un algoritmo en un programa, se deben llevar a cabo las
siguientes fases de puesta a punto:
Edición. En esta primera fase, el programador debe convertir el algoritmo que
haya diseñado en instrucciones escritas en C. Para ello, se debe hacer uso de
un editor de textos, con el cual se obtendrá el llamado código fuente del
programa. El programador deberá guardar dicho código fuente en un archivo
con extensión (.c) o (.cpp).
Si un programa escrito en C se va a compilar con un compilador de C, el código
fuente debe ser guardado, obligatoriamente, en un archivo con extensión (.c).
Ahora bien, si se utiliza un compilador de C/C++, el archivo se puede guardar
con extensión (.c) o (.cpp).
Preproceso. El preproceso sirve para realizar modificaciones en el código
fuente obtenido en la fase de edición. Es el programador quien, mediante
directivas del preprocesador, "dice" al preprocesador las modificaciones que
éste debe llevar a cabo.
El preprocesador es un programa característico de C, es decir, en otros
lenguajes de programación no existe, y siempre se ejecuta antes de llevarse a
cabo la compilación. Esto es debido a que, es el propio compilador quien llama al
preprocesador antes de realizar la compilación.
Compilación. Una vez que el código fuente ha sido preprocesado, el compilador
traducirá ese código fuente (modificado) a código máquina, también llamado
código objeto, siempre y cuando, el propio compilador no detecte ningún error
en dicho código fuente ya preprocesado.
Como resultado de la compilación, el compilador guardará el código objeto del
programa en un archivo con otra extensión, que, dependiendo del sistema
operativo puede variar. Por ejemplo, en Windows, se guardará con la extensión
(.obj), abreviatura de object.
3. Enlace. (linkaje o montaje). Los programas pueden utilizar funciones de la
biblioteca estándar de C, tales como scanf o printf. De cada una de ellas existe
un código objeto que debe ser enlazado (unido) al código objeto del programa
que las utilice. Esto se realiza mediante un programa llamado enlazador,
montador o linkador.
Como resultado del enlace, el enlazador guardará, en disco, un archivo
ejecutable. En Windows, dicho archivo tendrá extensión (.exe), abreviatura de
executable. Dicho archivo será "el ejecutable".
Además de las funciones de la biblioteca estándar de C, el programador
también puede utilizar funciones que hayan sido desarrolladas por él mismo.
Éstas pueden agruparse en su propia biblioteca de funciones (no estándar). Por
lo que, también en esta fase, el código objeto de dichas funciones deberá ser
enlazado al código objeto del programa que las utilice.
Gráficamente, el proceso de puesta a punto de un programa escrito en C se
puede ver en la siguiente figura:
Finalmente, para que el código ejecutable de un programa se ejecute en
la computadora, es necesario que un programa del sistema operativo, llamado
cargador, lo lleve a la memoria principal de la misma. A partir de ese momento,
la CPU empezará a ejecutarlo.
4. 3.1. Captura y edición del programa
Se puede crear un archivo que contenga el programa completo, como en los
ejemplos que se tienen más adelante. Se puede usar cualquier editor de textos
ordinario con el que se esté familiarizado. Un editor disponible en la mayoría
de los sistemas UNIX es vi, y en Linux se puede usar pico.
Por convención el nombre del archivo debe terminar con ``.c'' por ejemplo:
miprograma.c progprueba.c. El contenido del archivo deberá obedecer la
sintaxis de C.
Existen muchos compiladores de C. El cc es el compilador estándar de Sun. El
compilador GNU de C es gcc, el cual es bastante popular y está disponible en
varias plataformas.
Existen también compiladores equivalentes de C++ los cuales usualmente son
nombrados como CC. Por ejemplo, Sun provee CC y GNU GCC. El compilador de
GNU es también denotado como g++.
Existen otros compiladores menos comunes de C y C++. En general todos los
compiladores mencionados operan esencialmente de la misma forma y
comparten muchas opciones comunes en la línea de opciones. Más adelante se
listan y se dan ejemplos de opciones comunes de los compiladores. Sin
embargo, la mejor referencia de cada compilador es a través de las páginas en
línea, del manual del sistema. Por ejemplo: man gcc.
Para compilar el programa usaremos el comando gcc. El comando deberá ser
seguido por el nombre del programa en C que se quiere compilar. Un
determinado número de opciones del compilador pueden ser indicadas también.
Por el momento no haremos uso de estas opciones todavía, se irán comentando
algunas más esenciales.
Por lo tanto, el comando básico de compilación es:
gcc programa.c
Donde programa.c es el nombre del archivo.Si hay errores obvios en el
programa (tales como palabras mal escritas, caracteres no tecleados u
omisiones de punto y coma), el compilador se detendrá y los reportará.
5. Podría haber desde luego errores lógicos que el compilador no podrá detectar.
En el caso que esta fuera la situación se le estará indicando a la computadora
que haga las operaciones incorrectas.
Cuando el compilador ha terminado con éxito, la versión compilada, o el
ejecutable, es dejado en un archivo llamado a.out, o si la opción -o es usada con
el compilador, el nombre después de -o es el nombre del programa compilado.
Se recomienda y es más conveniente usar la opción -o con el nombre del archivo
ejecutable como se muestra a continuación:
gcc -o programa programa.c
El cual pone el programa compilado en el archivo del
programa señalado, en éste caso en programa, en vez del
archivo a.out.
3.2. Compilar el programa Depurar el programa
Ejecutar el programa
Compilar se refiere a la acción por medio de la cual, una serie de instrucciones
escritas o codificadas en lenguaje de programación son convertidas a lenguaje
máquina (binario) de tal forma que puedan ser ejecutadas por medio de un
programa informático.
El compilador de C traduce el código fuente en código de ensamblador. El
código fuente es recibido del preprocesador.
Si hay errores obvios en el programa (tales como palabras mal escritas,
caracteres no tecleados u omisiones de punto y coma), el compilador se
detendrá y los reportará.
6. DEPURAR UN PROGRAMA:
Es la etapa final en la creación de una aplicación informática, básicamente
depurar significa limpiar, cualquier programa o aplicación tiene error en su
código, con lo cual es necesaria una depuración para su correcto
funcionamiento, para esto existen aplicaciones para depurar, imagínate
rastrear línea por línea de una aplicación en busca de errores, un gran dolor de
cabeza.
Ejecución del programa
El siguiente estado es correr el programa ejecutable. Para correr un
ejecutable en UNIX, simplemente se escribe el nombre del archivo que lo
contiene, en este caso programa (o a.out).
Con lo anterior, se ejecuta el programa, mostrando algún resultado en la
pantalla. En éste estado, podría haber errores en tiempo de ejecución (run-
time errors), tales como división por cero, o bien, podrían hacerse evidentes al
ver que el programa no produce la salida correcta.
Si lo anterior sucede, entonces se debe regresar a editar el archivo del
programa, recompilarlo, y ejecutarlo nuevamente.
En informática, un programa que sirva para realizar la suma de dos números
enteros cualesquiera (por ejemplo, del 3 y el 5), puede representarse,
gráficamente, de la siguiente manera:
Figura: Programa Sumar.
Suponiendo que en el disco duro de un PC esté guardado el programa Sumar, si
alguien quiere realizar una suma con dicho programa, deberá seguir, como
mínimo, los siguientes cinco pasos:
7. 1. Encender el ordenador. Enseguida algunos programas del sistema
operativo instalado en la máquina se cargarán en la memoria principal y tomarán
el control de la computadora, la cual quedará a la espera de que el usuario
"diga" que quiere hacer.
2. Seleccionar el programa Sumar para ejecutarlo. Si el sistema operativo
ofrece una interfaz gráfica, el usuario podrá seleccionar el programa haciendo
doble clic con el puntero del ratón sobre su nombre (Sumar). Pero, en el
supuesto de que la interfaz sea modo texto, también llamado modo línea de
comandos, entonces el usuario deberá escribir su nombre y pulsar la tecla
Enter. En cualquiera de los dos casos, el sistema operativo buscará dicho
programa en el disco duro y, si lo encuentra, lo cargará en la memoria, es decir,
en ella escribirá una copia de todas las instrucciones del programa Sumar.
Inmediatamente después, la unidad de control se encargará de leer e
interpretar dichas instrucciones, una a una, para así ejecutarlas. Dos de las
primeras instrucciones solicitarán al usuario los números que éste desea sumar.
De manera que, la ejecución del programa se detendrá, en ambas ocasiones, a la
espera de que el usuario teclee dichos números.
3. Introducir los datos de entrada. El usuario debe teclear un número (por
ejemplo, el 3) y pulsar Enter, y realizar la misma operación para el segundo
número (por ejemplo, el 5). A continuación, la unidad aritmético/lógica calculará
la suma, que en este caso resultará ser 8. Los tres datos también se guardarán
en la memoria.Posteriormente, el resultado de calcular la suma de los dos
números de entrada se mostrará por la pantalla del monitor, en donde el
usuario podrá ver algo parecido a:
8. Figura: Salida por pantalla del Programa Sumar.
En el transcurso de la ejecución de este programa, el usuario interviene dos
veces, ambas para escribir los números que quiere sumar. En cierta manera, se
ha producido un diálogo entre el usuario y la máquina, o dicho de otra forma,
para que este programa se ejecute de principio a fin, es necesario que el
usuario participe en algún momento dado. A este tipo de programas se les
denomina interactivos. Los videojuegos son excelentes ejemplos de programas
interactivos, ya que, en ellos, el usuario interactúa constantemente con la
máquina.
4. Finalizar el programa. Llegados a este punto, el programa Sumar finalizará
después de que el usuario pulse cualquier tecla. En consecuencia, el sistema
operativo liberará el espacio de memoria ocupado por las instrucciones del
programa y por todos los datos utilizados en su ejecución (en este caso tres
datos). Después de ejecutar cualquier programa siempre hay que dejar libre el
espacio de memoria ocupado y, así, dejar hueco para que otros programas
puedan ejecutarse.
5. Apagar el ordenador. Si ahora el usuario decide apagar el ordenador,
también se liberará el espacio de memoria ocupado por los programas del
sistema operativo y todo volverá a estar como al principio.
Grosso modo, esto es lo que sucederá cuando se ejecute el programa Sumar. En
la explicación se han pasado por alto muchos detalles técnicos. Sin embargo,
obsérvese que, en el proceso han participado todas las unidades principales de
la computadora.