Declarative diagnosis of wrong answers in constraint functional-logic programming

  • Authors:
  • Rafael Caballero;Mario Rodríguez Artalejo;Rafael del Vado Vírseda

  • Affiliations:
  • Dep. Sistemas Informáticos y Programación, Univ. Complutense de Madrid;Dep. Sistemas Informáticos y Programación, Univ. Complutense de Madrid;Dep. Sistemas Informáticos y Programación, Univ. Complutense de Madrid

  • Venue:
  • ICLP'06 Proceedings of the 22nd international conference on Logic Programming
  • Year:
  • 2006

Quantified Score

Hi-index 0.00

Visualization

Abstract

Debugging tools are a practical need for diagnosing the causes of erroneous computations. Declarative programming paradigms involving complex operational details, such as constraint solving and lazy evaluation, do not fit well to traditional debugging techniques relying on the inspection of low-level computation traces. As a solution to this problem, declarative diagnosis uses Computation Trees (shortly, CTs) in place of traces. CTs are built a posteriori to represent the structure of a computation whose top level outcome is regarded as an error symptom by the user. Each node in a CT represents the computation of some observable result, depending on the results of its children nodes. Declarative diagnosis explores a CT looking for a so-called buggy node which computes an incorrect result from children whose results are correct; such a node must point to an incorrect program fragment. The search for a buggy node can be implemented with the help of an external oracle (usually the user with some semiautomatic support) who has a reliable declarative knowledge of the expected program semantics, the so-called intended interpretation.