A three-valued declarative debugging scheme

Declarative debugging has many advantages over conventional approaches to debugging for logic and functional programs. This paper extends a previously defined scheme for declarative debugging in which computations were considered either correct or erroneous. We argue that a third value, "inadmissible", should be supported and show how this can be done. Two classes of bugs are defined: one equivalent to the bugs defined by the two valued scheme, the other associated with inadmissibility: it is shown how different instances of the scheme can be used to diagnose type errors, mode errors, violated assertions and abnormal termination as well as the more familiar classes of bugs detected by declarative debuggers.

[1]  Luís Moniz Pereira Rational Debugging in Logic Programming , 1986, ICLP.

[2]  Lee Naish A three-valued semantic for Horn clause programs , 2000, Proceedings 23rd Australasian Computer Science Conference. ACSC 2000 (Cat. No.PR00518).

[3]  Lan Nguyen-Phuong,et al.  Integrating Modes and Subtypes into a Prolog Type-Checker , 1992, JICSLP.

[4]  Simin Nadjm-Tehrani,et al.  The Use of Assertions in Algorithmic Debugging , 1988, FGCS.

[5]  Wlodzimierz Drabent,et al.  Inductive Assertion Method for Logic Programs , 1988, Theor. Comput. Sci..

[6]  Lee Naish,et al.  The NU-Prolog Debugging Environment , 1989, ICLP.

[7]  Melvin Fitting,et al.  Stratified and Three-valued Logic Programming Semantics , 1988, ICLP/SLP.

[8]  Lee Naish Verification of Logic Programs and Imperative Programs , 1991, ICLP Workshop on Construction of Logic Programs.

[9]  Luís Moniz Pereira,et al.  A Framework for Prolog Debugging , 1988, ICLP/SLP.

[10]  Leon Sterling Two Aspects of Directional Types , 1995 .

[11]  Jan Maluszynski,et al.  Two Aspects of Directional Types , 1995, ICLP.

[12]  Wlodzimierz Drabent,et al.  Inductive Assertion Method for Logic Programs , 1987, Theoretical Computer Science.

[13]  Ehud Shapiro,et al.  Algorithmic Program Debugging , 1983 .

[14]  Lee Naish,et al.  Types and the Intended Meaning of Logic Programs , 1992, Types in Logic Programming.

[15]  Lee Naish A Declarative Debugging Scheme , 1997, J. Funct. Log. Program..

[16]  Kenneth Kunen,et al.  Negation in Logic Programming , 1987, J. Log. Program..

[17]  Lee Naish A Declarative View of Modes , 1996, JICSLP.