Error diagnosis in logic programming, an adaptation of E.Y. Shapiro's method
Journal of Logic Programming
New Generation Computing
Algorithmic Program DeBugging
Declarative Diagnosis in the CLP Scheme
Analysis and Visualization Tools for Constraint Programming, Constrain Debugging (DiSCiPl project)
Practical aspects of declarative debugging in Haskell 98
Proceedings of the 5th ACM SIGPLAN international conference on Principles and practice of declaritive programming
How to look busy while being as lazy as ever: the Implementation of a lazy functional debugger
Journal of Functional 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
A new generic scheme for functional logic programming with constraints
Higher-Order and Symbolic Computation
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
Hi-index | 0.00 |
We present a logical and semantic framework for diagnosing wrong computed answers in CFLP(D), a newly proposed generic scheme for lazy Constraint Functional Logic Programming which can be instantiated by any constraint domain D given as parameter, and supports a powerful combination of functional and constraint logic programming over D. Our approach extends and combines declarative debugging techniques previously developed for less expressive programming paradigms, namely the CLP(D) scheme and lazy functional logic languages. Debugging starts with the observation of a wrong computed answer which the user regards as incorrect w.r.t. an intended model that provides a declarative description of the program's semantics. Debugging proceeds by exploring an abridged proof tree that provides a purely declarative view of the computation, so that the user does not need to understand the complex underlying operational mechanisms. Debugging ends with the detection of a function rule in the program that is incorrect w.r.t. the intended model. We prove the logical correctness of the debugging method for any sound CFLP(D)-system whose computed answers are logical consequences of the program, and we describe a practical tool which implements the debugging method for the domain of arithmetic constraints over the real numbers.