Open Access
Declarative Debugging of Maude Modules
Adrián Riesco Rodríguez,José Alberto Verdejo López,Rafael Caballero,Narciso Martí Oliet +3 more
- 01 Jan 2008
TL;DR: A declarative debugger for Maude modules is introduced: functional modules correspond to executable specifications in membership equational logic, while system modules corresponds to rewrite theories.
read more
Abstract: We introduce a declarative debugger for Maude modules: functional modules correspond to executable specifications in membership equational logic, while system modules correspond to rewrite theories First we describe the construction of appropriate debugging trees for oriented equational and membership inferences and rewrite rules These trees are obtained as the result of collapsing in
proof trees all those nodes whose correction does not need any justification
We include several extended examples to illustrate the use of the declarative debugger and its main features, such as two possible constructions of the debugging tree, two different strategies to traverse it, use of a correct module to reduce the number of questions asked to the user, selection of trusted vs suspicious statements by means of labels, and trusting of statements “on the fly”
Since Maude supports the reflective features in its underlying logic, it includes a predefined META-LEVEL module providing access to metalevel concepts such as specifications or computations as usual data This allows us to generate and navigate the debugging tree of a Maude computation using operations in Maude itself Even the user interface of the declarative debugger for Maude can be specified in Maude itself We describe in detail this metalevel implementation of our tool
read more
Chat with Paper
AI Agents for this Paper
Find similar papers on Google Scholar, PubMed and Arxiv
Write a critical review of this paper
Analyze citations of this paper to find unaddressed research gaps
Citations
Logic-Based Program Synthesis and Transformation
Annalisa Bossi
- 01 Jan 2000
TL;DR: Various formalizations of the concept of “refinement step” as used in the formal development of programs from algebraic specifications are presented and compared.
58
Declarative debugging of rewriting logic specifications
TL;DR: Maude DDebugger is implemented, a declarative debugger for Maude, a high-performance system based on rewriting logic, using an abbreviation of the proof trees computed with this calculus to build appropriate debugging trees for both wrong result obtained from an initial result and missing answers.
42
Declarative Debugging of Rewriting Logic Specifications
Adrián Riesco,Alberto Verdejo,Rafael Caballero,Narciso Martí-Oliet +3 more
- 29 Aug 2009
TL;DR: The fundamentals for the declarative debugging of rewriting logic specifications, realized in the Maude language, are presented and appropriate debugging trees obtained as the result of collapsing in proof trees all those nodes whose correctness does not need any justification are defined.
A Declarative Debugger for Maude Specifications: User Guide
Adrián Riesco Rodríguez,José Alberto Verdejo López,Narciso Martí Oliet,Rafael Caballero +3 more
- 01 Jan 2009
TL;DR: This guide shows in this guide how to use the declarative debugger for Maude specifications, a semi-automatic technique that starts from a computation considered incorrect by the user and locates a program fragment responsible for the error by asking questions to an external oracle.
A Declarative Debugger for Maude
Adrián Riesco,Alberto Verdejo,Narciso Martí-Oliet,Rafael Caballero +3 more
- 28 Jul 2008
TL;DR: This paper presents a declarative debugger for rewriting logic specifications, embodied in the Maude language, and presents its main features, such as support for functional and system modules, and two possible constructions of the debugging tree.
References
Conditional rewriting logic as a unified model of concurrency
José Meseguer,José Meseguer +1 more
TL;DR: Maude as discussed by the authors is a programming language whose modules are rewriting logic theories, which is defined and given denotational and operational semantics, and it provides a simple unification of concurrent programming with functional and object-oriented programming and supports high level declarative programming of concurrent systems.
1.4K
•Book
Algorithmic Program Debugging
Ehud Shapiro
- 14 Apr 1983
TL;DR: An algorithm that can fix a bug that has been identified, and integrate it with the diagnosis algorithms to form an interactive debugging system that can debug programs that are too complex for the Model Inference System to synthesize.
1.2K
•Book
The Semantics of Programming Languages: An Elementary Introduction Using Structural Operational Semantics
Matthew Hennessy
- 01 Aug 1990
TL;DR: This book is based on a course given to second-year computer science undergraduates at the University of Sussex in the spring of 1988 and 1989 and offers an elementary introduction to the semantics of programming languages in a form which is designed to be accessible to students who are not very advanced in their undergraduate career.
189
Algorithmic debugging for lazy functional languages
Henrik Nilsson,Peter Fritzson +1 more
TL;DR: This thesis presents a technique for debugging lazy functional programs declaratively and an efficient implementation of a declarative debugger for a large subset of Haskell, believed to be the first implementation of such a debugger which is sufficiently efficient to be useful in practice.
87
•Book
Reflection in Rewriting Logic: Metalogical Foundations and Metaprogramming Applications
Manuel Clavel
- 01 Jan 2000
TL;DR: Reflection in general logics and in rewriting logic is studied in this article, with a focus on reflective Maude, a Maude variant of Maude with reflection and strategies.
86