Codigos en C, correcta compilacion - norman-ipn/Errores GitHub Wiki

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.

#Diego Aguilar Hola Eric, de acuerdo a tu información es importante plantear que tipo de problemas o errores vamos a intentar corregir en nuestro programa, yo propondría empezar con los errores de sintaxis, es decir investigar la forma en que dentro de la gramática podamos modificar los archivos.c ya sea para agregar símbolos que hicieron falta o modificar aquellos que están mal escritos. Cuando logremos corregir eso, podríamos enfocarnos a los errores de ejecución, lo importante seria como utilizar el depurador para nuestro beneficio y supongo que en este tipo de errores a veces sera necesaria la información otorgada por el usuario sin poder hacerlo todo automatizado.