Debugging by Diagnosing Assumptions
نویسندگان
چکیده
We present a novel and uniform technique for normal logic program declarative error diagnosis. We lay down the foundations on a general approach to diagnosis using logic programming, and bring out the close relationship between debugging and fault{{nding. Diagnostic debugging can be enacted by contradiction removal methods. It relies on a simple program transformation to provide a contradiction removal approach to debugging, based on revising the assumptions about predicates' correctness and completeness. The contradiction removal method is justiied in turn in terms of well{ founded semantics. The loop detection properties of well{founded semantics will allow in the future for a declarative treatment of otherwise endless derivations. The debugging of programs under well{founded semantics with explict negation is also foreseen. Here, we apply our techniques to nite SLDNF derivations, whose meaning coincides with the well{founded model, for which our contradiction removal method and algorithm is sound and complete. Several examples illustrate the algorithm at work.
منابع مشابه
Probabilistic Declarative Debugging
We present a probabilistic approach to the search strategy for declarative debugging. We focus on diagnosing wrong answers in pure Prolog programs but the approach can be adapted to other languages (for example, functional languages) and bug symptoms. Drawing information from source code and the execution of passed and failed test cases, different search heuristics are combined using probabilit...
متن کاملDeclarative Debugging of Missing Answers in Constraint Functional-Logic Programming
It is well known that constraint logic and functional-logic programming languages have many advantages, and there is a growing trend to develop and incorporate effective tools to this class of declarative languages. In particular, debugging tools are a practical need for diagnosing the causes of erroneous computations. Recently [1], we have presented a prototype tool for the declarative diagnos...
متن کاملA Theory of Debugging Plans and Interpretations
We present a theory of debugging applicable for planning and interpretation problems. The debugger analyzes causal explanations for why a bug arises to locate the underlying assumptions upon which the bug depends. A bug is repaired by replacing assumptions, using a small set of domain-independent debugging strategies that reason about the causal explanations and domain models that encode the ef...
متن کاملMARKOVIAN SOFTWARE RELIABILITY MODEL FOR TWO TYPES OF FAILURES WITH IMPERFECT DEBUGGING RATE AND GENERATION OF ERRORS
N
متن کامل1 an Integrated Approach to Instruction in Debugging Computer Programs
Abstract: This study demonstrates that formal training in debugging helps students develop skills in diagnosing and removing defects from computer programs. To enhance debugging skills in an assembly language course, students completed debugging exercises, debugging logs, development logs, reflective memos, and collaborative assignments. The debugging exercises were optional, but the other acti...
متن کامل