Skip to content

Codigos en C, correcta compilacion

ericmau edited this page Nov 22, 2012 · 1 revision

La realización de un programa en cualquier lenguaje de programación es un proceso más o menos largo que debe terminar en la escritura de un código del programa que ‘funcione correctamente’. Que un programa funcione correctamente significa que proporcione los ‘resultados esperados’, es decir que su comportamiento real coincida con el comportamiento esperado. Un programa es correcto si no tiene errores de ejecución y si se cumple las especificaciones escritas en la fase de especificación. En el proceso de escritura de un programa aparecen muchos errores que debemos ir corrigiendo hasta llegar a escribir el programa correctamente. Los tipos de errores que podemos encontrarnos son:

  • Errores de sintaxis: Son errores producidos por la incumplimiento de las reglas sintácticas del lenguaje que estemos utilizando. Hasta que no se corrigen estos errores no podemos obtener un código ejecutable del programa. Este tipo de errores se corrigen mediante el compilador.
  • Errores de ejecución: Son errores que se producen cuando se realiza una operación no válida que da lugar a la finalización anormal del programa (división por cero, abrir ficheros que no existen, acceder a zonas de memoria no permitidas, etc.).
  • Errores lógicos: Son errores debidos a la traducción incorrecta de las especificaciones del programa. El programa termina normalmente pero no produce los resultados esperados. Un depurador es una herramienta de programación que nos permite la detección y corrección de errores de ejecución y errores lógicos. Este tipo de errores aparecen a partir del momento en el que tenemos un código sintácticamente correcto del que obtenemos un programa ejecutable. Es al probar este programa ejecutable cuando se puede detectar la aparición de errores de ejecución y lógicos. El depurador nos permite ejecutar el programa de tal forma que es posible ir acotando las zonas donde se están produciendo errores, observar bajo que valores o condiciones se dan éstos, etc. Esta información nos ayudará a modificar el código para corregir y evitar fallos del programa. Hay que advertir que un depurador ayuda a solucionar problemas de incorrección puntuales de los programas, pero en ningún caso sirve para arreglar un programa mal especificado o mal concebido. Un programa mal especificado significa un tener que construir un programa del que no sabemos exactamente que debe hacer (o que no debe hacer), y jamás se podrá decir que funciona bien o mal. Y un programa mal concebido (mal diseñado o con ausencia total de diseño) no tiene solución posible. La depuración de programas es una tarea bastante complicada, sobre todo con depuradores en línea como gdb, por lo que para facilitar esta tarea los programas deben estar bien especificados y diseñados y estar escritos con la máxima claridad (legibilidad de los programas). La depuración de un programa se facilita si es correcta su especificación, diseño y legibilidad y nunca a la inversa.