New Generation Computing
Conditional rewriting logic as a unified model of concurrency
Selected papers of the Second Workshop on Concurrency and compositionality
Declarative diagnosis of missing answers
New Generation Computing
Why no one uses functional languages
ACM SIGPLAN Notices
Specification and proof in membership equational logic
Theoretical Computer Science - Trees in algebra and programming
Reflection in Rewriting Logic: Metalogical Foundations and Metaprogramming Applications
Reflection in Rewriting Logic: Metalogical Foundations and Metaprogramming Applications
Algorithmic Program DeBugging
Reflection in conditional rewriting logic
Theoretical Computer Science - Rewriting logic and its applications
Membership algebra as a logical framework for equational specification
WADT '97 Selected papers from the 12th International Workshop on Recent Trends in Algebraic Development Techniques
Declarative Diagnosis in the CLP Scheme
Analysis and Visualization Tools for Constraint Programming, Constrain Debugging (DiSCiPl project)
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 comparative study of algorithmic debugging strategies
LOPSTR'06 Proceedings of the 16th international conference on Logic-based program synthesis and transformation
Abstract diagnosis of functional programs
LOPSTR'02 Proceedings of the 12th international conference on Logic based program synthesis and transformation
All about maude - a high-performance logical framework: how to specify, program and verify systems in rewriting logic
Declarative debugging with buddha
AFP'04 Proceedings of the 5th international conference on Advanced Functional Programming
A Declarative Debugger for Maude
AMAST 2008 Proceedings of the 12th international conference on Algebraic Methodology and Software Technology
Hi-index | 0.00 |
Algorithmic debugging has been applied to many declarative programming paradigms; in this paper, it is applied to the rewriting paradigm embodied in Maude. We introduce a declarative debugger for executable specifications in membership equational logic which correspond to Maude functional modules. Declarative debugging is based on the construction and navigation of a debugging tree which logically represents the computation steps. We describe the construction of appropriate debugging trees for oriented equational and membership inferences. These trees are obtained as the result of collapsing in proof trees all those nodes whose correctness does not need any justification. We use an extended example to illustrate the use of the declarative debugger and its main features, such as two different strategies to traverse the debugging tree, use of a correct module to reduce the number of questions asked to the user, and selection of trusted vs. suspicious statements by means of labels. The reflective features of Maude have been extensively used to develop a prototype implementation of the declarative debugger for Maude functional modules using Maude itself.