2009
DOI: 10.1007/978-3-642-03429-9_20
|View full text |Cite
|
Sign up to set email alerts
|

Declarative Debugging of Rewriting Logic Specifications

Abstract: Abstract. Declarative debugging is a semi-automatic technique that starts from an incorrect computation and locates a program fragment responsible for the error by building a tree representing this computation and guiding the user through it to find the wrong statement. This paper presents the fundamentals for the declarative debugging of rewriting logic specifications, realized in the Maude language, where a wrong computation can be a reduction, a type inference, or a rewrite. We define appropriate debugging … Show more

Help me understand this report

Search citation statements

Order By: Relevance

Paper Sections

Select...
1
1
1
1

Citation Types

0
10
0

Year Published

2010
2010
2017
2017

Publication Types

Select...
5
2

Relationship

2
5

Authors

Journals

citations
Cited by 13 publications
(10 citation statements)
references
References 24 publications
0
10
0
Order By: Relevance
“…For instance, a function that returns a value of type T may return a value of type (T, DebugTree) after the transformation, being DebugTree a suitable datatype defined to represent the debugging tree. (2) Using code instrumentation [Nilsson and Fritzson 1992;Nilsson 1998;Faddegon and Chitil 2015], reflection [Shapiro 1982a;Lloyd 1987b;Binks 1995;Tessier and Ferrand 2000;MacLarty 2005;Riesco et al 2012;, or directly modifying the compiler [Nilsson 2001] in order to produce the debugging tree.…”
Section: Implementation Techniquesmentioning
confidence: 99%
See 1 more Smart Citation
“…For instance, a function that returns a value of type T may return a value of type (T, DebugTree) after the transformation, being DebugTree a suitable datatype defined to represent the debugging tree. (2) Using code instrumentation [Nilsson and Fritzson 1992;Nilsson 1998;Faddegon and Chitil 2015], reflection [Shapiro 1982a;Lloyd 1987b;Binks 1995;Tessier and Ferrand 2000;MacLarty 2005;Riesco et al 2012;, or directly modifying the compiler [Nilsson 2001] in order to produce the debugging tree.…”
Section: Implementation Techniquesmentioning
confidence: 99%
“…In almost all cases, the debugging tree is obtained by using a meta-interpreter, taking advantage of the reflection possibilities of logic languages such as Prolog, and all the works include results of soundness and completeness. A very similar approach was later applied to the more general CLP scheme [Fromherz 1993;Tessier and Ferrand 2000], to the combination with assertions [Wlodzimierz et al 1988], and to multi-paradigm languages such as Gödel or Maude [Binks 1995;Riesco et al 2012].…”
Section: Logic Programmingmentioning
confidence: 99%
“…It includes several program analyzers and theorem provers, which are all accessible in [29]. Other available tools in [29] are not yet integrated, such as the declarative debugger of Maude [30] and Maude's model checkers [4,7]. The declarative debugger is based on Shapiro's algorithmic debugging technique [31] and supports the debugging of wrong results (erroneous reductions, sort inferences, and rewrites) and incomplete results (not completely reduced normal forms, greater than expected least sorts, and incomplete sets of reachable terms) in object-oriented, parameterized modules written in (Full) Maude.…”
Section: Related Workmentioning
confidence: 99%
“…To avoid this problem we place transitivity nodes in such a way that (i) the debugging tree becomes as balanced as possible, which improves the behavior of the navigation strategies and (ii) the questions in the debugging tree refer to final results, making the questions easier to answer. The tree transformation for this semantics, similar to the one in [14], takes advantage of transitivity rules while keeping the correctness and completeness of the technique. Thus, in this case the APT ss function is defined as:…”
Section: Declarative Debugging With Small-step Semanticsmentioning
confidence: 99%
“…Our declarative debugger for Maude specifications is presented in [14]. This debugger uses the standard calculus for rewriting logic 1 to build the debugging trees, which are used to locate bugs in equations, membership axioms, and rules.…”
Section: Introductionmentioning
confidence: 99%