A probe effect in concurrent programs
Software—Practice & Experience
Current trends in concurrency. Overviews and tutorials
Concurrent Prolog: A Progress Report
Computer
Algorithm debugging of GHC programs and its implementation in GHC
Concurrent Prolog: collected papers
Representation and enumeration of flat Concurrent Prolog computations
Concurrent Prolog: collected papers
Interactive blackbox debugging for concurrent languages
PADD '88 Proceedings of the 1988 ACM SIGPLAN and SIGOPS workshop on Parallel and distributed debugging
On the development of reactive systems
Logics and models of concurrent systems
Algorithmic Program DeBugging
An approach to high-level debugging of distributed systems: preliminary draft
SIGSOFT '83 Proceedings of the symposium on High-level debugging
The family of concurrent logic programming languages
ACM Computing Surveys (CSUR)
A bibliography of parallel debuggers, 1990 edition
ACM SIGPLAN Notices
Generalized algorithmic debugging and testing
ACM Letters on Programming Languages and Systems (LOPLAS)
Towards an Algorithmic Debugging for Distributed Programs
APSEC '99 Proceedings of the Sixth Asia Pacific Software Engineering Conference
Abstract interpretation based verification of logic programs
Science of Computer Programming
Hi-index | 0.00 |
Algorithmic Debugging is a theory of debugging that uses queries on the compositional semantics of a program in order to localize bugs. It uses the following principle: if a computation of a program's component gives an incorrect result, while all the subcomputations it invokes compute correct results, then the code of this component is erroneous.Algorithmic Debugging is applied, in this work, to reactive systems, in particular to programs written in Flat Concurrent Prolog (FCP). Debugging reactive systems is known to be more difficult than the debugging of functional systems. A functional system is fully described by the relation between its initial input and final output; this context-freedom is used in debugging. A reactive system continuously responds to external inputs, thus its debugging cannot make use of context-free input/output relations.Given a compositional semantic model for a concurrent programming language, we demonstrate how one can directly apply the ideas of Algorithmic Debugging to obtain a theory of program debugging for the considered language. The conflict between the context-freedom of input/ output relations and the reactive nature of concurrent systems is resolved by using semantic objects which record the reactive nature of the system's components. In functional algorithmic debugging the queries relate to input/output relations; in concurrent algorithmic debugging the queries refer to semantic objects called processes which capture the reactive nature of FCP computations.A diagnosis algorithm for incorrect FCP programs is proposed. The algorithm gets an erroneous computation and using queries isolates an erroneous clause or an incomplete procedure. An FCP implementation of the diagnosis algorithm demonstrates the usefulness as well as the difficulties of Algorithmic Debugging of FCP programs.