Está en la página 1de 2

1.

2 Procesos de edicin, compilacin, enlazado


Definicin del problema y diseo de la solucin
Desarrollar un programa, incluso para programas tan sencillos como los que se
van a realizar en esta asignatura, es parte de un proceso que empieza por la
definicin del problema y el diseo de una solucin. Estos pasos se
abordan antes de empezar a codificar. Si el problema es grande y complicado ser
necesario aplicar tcnicas que permitan descomponerlo en problemas ms
pequeos cuyas soluciones puedan integrarse para resolver el problema global.
Pero aunque el problema se reduzca a plantear un pequeo algoritmo, sigue
siendo necesario comprender el problema y solucionarlo antes de empezar a
codificar la solucin1. Aunque las soluciones se disean pensando en los trminos
de las abstracciones que nos proporciona el lenguaje de programacin, la
codificacin es un paso posterior al planteamiento de la solucin.
Codificacin
Una vez que hemos resuelto el problema podemos pasar a codificar la solucin,
creando un archivo o un conjunto de archivos que contengan el cdigo fuente.
Para ello se necesita un programa editor que permita escribir y guardar nuestro
programa. En las prcticas se va a utilizar el editor que proporciona el entorno de
desarrollo Codelite, pero vale cualquier editor que utilice el conjunto de caracteres
que admite un compilador de C. Durante la codificacin es muy habitual incorporar
cdigo disponible en bibliotecas software, que puede haber sido desarrollado por
el propio programador o por terceros. La reutilizacin es un aspecto fundamental
del desarrollo software. Los lenguajes de programacin establecen mecanismos
para importar y utilizar dichas libreras aunque no estn disponibles los archivos
con su cdigo fuente.
Es importante, aunque no necesario para que un programa funcione, seguir unas
buenas prcticas de programacin a la hora de escribir el cdigo. Las primeras
buenas prcticas que debe aprender son:
Utilizar nombres significativos para variables y funciones, evitando nombres que
no ayuden a entender el propsito de una variable o funcin. Hilando ms fino, se
recomienda utilizar sustantivos para los nombres de variables y verbos para las
funciones.
Documentar adecuadamente el cdigo. No se trata de documentar hasta la
ltima declaracin de variable, pero s aquellos detalles que ayudan a entender
por qu se ha escrito ese cdigo. La documentacin es esencial para entender o
modificar cdigo fuente.

Compilacin y ensamblado del programa


El programa que hemos editado es cdigo fuente y no puede ser ejecutado
directamente por ningn computador: es necesario traducirlo a cdigo mquina.
Para ello necesitamos un compilador o un intrprete. Existen lenguajes de
programacin, como C, en que el cdigo fuente es traducido por un compilador a
cdigo mquina y se genera un archivo directamente ejecutable. La figura 2
muestra el proceso completo de generacin de un programa ejecutable en C a
partir del cdigo fuente. Otros lenguajes, como Java, se compilan a un lenguaje
intermedio (que en el caso de Java se denomina bytecode) que posteriormente es
interpretado y ejecutado por un programa especial que se denomina intrprete.
Adems, los programas habitualmente no se encuentran en un nico archivo, sino
distribuidos en muchos, que deben ensamblarse para dar lugar a un programa
ejecutable. La obtencin de un programa ejecutable implica, por un lado, la
traduccin de los archivos en cdigo fuente a archivos con cdigo objeto y, por
otro, el ensamblado de los archivos con cdigo objeto.
Ejecucin, prueba y depuracin del programa
Dependiendo del lenguaje y de la plataforma de ejecucin que utilicemos, para
ejecutar un programa puede bastar con escribir su nombre como un comando en
una consola o hacer doble clic en un icono o puede ser necesario utilizar algn
programa auxiliar que lance al nuestro. En cualquier caso, que nuestro programa
sea capaz de ejecutarse no significa que realice correctamente la tarea que tiene
encomendada. En programacin es muy difcil acertar a la primera. Normalmente
es necesario ejecutar el programa una y otra vez hasta conseguir detectar y
corregir todos sus fallos. Existen tcnicas para probar los programas de forma
exhaustiva y utilidades (depuradores) que ayudan a detectar y corregir los errores
de programacin. Los errores de programacin se clasifican en:

Errores de compilacin (sintcticos). Detectados por el compilador cuando


el cdigo fuente no se ajusta a lenguaje C. Ejemplos: falta de de parntesis, llaves,
punto y coma al final de cada lnea, utilizacin de palabras reservadas como
identificadores, etc.
Errores en tiempo de ejecucin (semnticos). El programa compila pero no
resuelve correctamente el problema, su comportamiento no se ajusta al esperado,
el programa se cuelga, etc. Estos errores son generalmente difciles de detectar,
ya que el compilador no ayuda a detectarlos. Hay que recurrir al uso de tcnicas
de depuracin, como la impresin de trazas del funcionamiento del programa, y al
uso de programas depuradores.