Algorithmic Program DeBugging
Declarative Diagnosis in the CLP Scheme
Analysis and Visualization Tools for Constraint Programming, Constrain Debugging (DiSCiPl project)
TOY: A Multiparadigm Declarative System
RtA '99 Proceedings of the 10th International Conference on Rewriting Techniques and Applications
Practical aspects of declarative debugging in Haskell 98
Proceedings of the 5th ACM SIGPLAN international conference on Principles and practice of declaritive programming
A declarative debugger of incorrect answers for constraint functional-logic programs
Proceedings of the 2005 ACM SIGPLAN workshop on Curry and functional logic programming
Abstract verification and debugging of constraint logic programs
ERCIM'02/CologNet'02 Proceedings of the 2002 Joint ERCIM/CologNet international conference on Constraint solving and constraint logic programming
Declarative constraint programming with definitional trees
FroCoS'05 Proceedings of the 5th international conference on Frontiers of Combining Systems
A new generic scheme for functional logic programming with constraints
Higher-Order and Symbolic Computation
Declarative debugging of missing answers in constraint functional-logic programming
ICLP'07 Proceedings of the 23rd international conference on Logic programming
Declarative diagnosis of missing answers in constraint functional-logic programming
FLOPS'08 Proceedings of the 9th international conference on Functional and logic programming
Declarative diagnosis of floundering in prolog
ACSC '12 Proceedings of the Thirty-fifth Australasian Computer Science Conference - Volume 122
Hi-index | 0.00 |
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.