Debugging techniques for declarative languagesprofiling, program slicing and algorithmic debugging

  1. Silva Galiana, Josep Francesc
Dirigida por:
  1. Germán Vidal Oriola Director/a

Universidad de defensa: Universitat Politècnica de València

Fecha de defensa: 29 de junio de 2007

Tribunal:
  1. María Alpuente Frasnedo Presidente/a
  2. César Ferri Ramírez Secretario/a
  3. Rafael Caballero Roldán Vocal
  4. Elvira Albert Vocal
  5. Michael Hanus Vocal

Tipo: Tesis

Teseo: 138394 DIALNET

Resumen

La depuración de programas puede ser una tarea ardua, Esto se debe fundamentalmente a que los errores pueden ser evidentes al primer vistazo, o pueden estar escondidos en las zonas más profundas y ocultas de nuestros programas. Sin embargo, sorprendentemente, la depuración es uno de los procesos software que ha sido menos tratado por la comunidad científica; de hecho, las mismas técnicas de depuración que se usaban hace veinte años, continúan utilizándose en la actualidad. La situación no es diferente en el contexto de los lenguajes declarativos. O es incluso peor, porque estos lenguajes suelen presentar dificultades adicionales a la hora de depurarlos debido, por ejemplo, al mecanismo de evaluación perezosa. En esta tesis se revisan los métodos actuales de depuración para lenguajes declarativos y se desarrollan nuevos métodos y técnicas basadas en el cómputo de costes, la fragmentación de programas y la depuración algorítmica. Brevemente, las principales contribuciones de la tesis son: - La definición de un esquema de cómputo de costes para programas lógico funcionales que está basado en el uso de centros de coste y que permite medir diferentes tipos de costes simbólicos. - La formulación de una nueva técnica de fragmentación dinámica de programas basada en redex trails, su aplicación a la depuración y su adaptación para la especialización de programas declarativos multi-paradigma modernos. - La introducción de un nuevo esquema de depuración algorítmica que combina la depuración algorítmica convencional con la fragmentación de programas. - La definición de tres nuevas estrategias para depuración algorítmica. - El desarrollo de un estudio comparativo y una posterior clasificación de técnicas de fragmentación de programas y estrategias de depuración algorítmica.