A Framework for Assertion-Based Debugging in Constraint Logic Programming

As constraint logic programming matures and larger applications are built, an increased need arises for advanced development and debugging environments. Assertions are linguistic constructions which allow expressing properties of programs. Classical examples of assertions are type declarations. However, herein we are interested in supporting a more general setting [3, 1] in which, on one hand assertions can be of a more general nature, including properties which are statically undecidable, and, on the other, only a small number of assertions may be present in the program, i.e., the assertions are optional. In particular, we do not wish to limit the programming language or the language of assertions unnecessarily in order to make the assertions statically decidable. Consequently, the proposed framework needs to deal throughout with approximations [2].

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

[2]  Michael J. Maher,et al.  Constraint Logic Programming: A Survey , 1994, J. Log. Program..

[3]  Eric Vétillard Utilisation de Déclarations en Programmation Logique avec Contraintes , 1994, JFPLC.

[4]  Simin Nadjm-Tehrani,et al.  Algorithmic Debugging with Assertions , 1989, META.

[5]  Gerda Janssens,et al.  Global analysis of constraint logic programs , 1996, TOPL.

[6]  Pascal Van Hentenryck,et al.  Experimental Evaluation of a Generic Abstract Interpretation Algorithm for PROLOG , 1992, ACM Trans. Program. Lang. Syst..

[7]  Wlodzimierz Drabent,et al.  On the Role of Semantic Approximations on Validation and Diagnosis of Contraint Logic Programs , 1997, AADEBUG.

[8]  Manuel V. Hermenegildo,et al.  Compile-Time Derivation of Variable Dependency Using Abstract Interpretation , 1992, J. Log. Program..

[9]  Jan Maluszynski,et al.  CP debugging tools: Clarification of functionalities and selection of the tools , 1997 .

[10]  Manuel V. Hermenegildo,et al.  An assertion language for debugging of constraint logic programs , 1997 .

[11]  John P. Gallagher,et al.  Fast and Precise Regular Approximations of Logic Programs , 1994, ICLP.

[12]  Manuel V. Hermenegildo,et al.  Combined Determination of Sharing and Freeness of Program Variables through Abstract Interpretation , 1991, ICLP.

[13]  Manuel V. Hermenegildo,et al.  Global Analysis of Standard Prolog Programs , 1996, ESOP.

[14]  Wlodzimierz Drabent,et al.  Declarative Diagnosis of Contraint Programs: An Assertion-Based Approach , 1997, AADEBUG.

[15]  Pierre Deransart,et al.  Proof Methods of Declarative Properties of Definite Programs , 1993, Theor. Comput. Sci..

[16]  Zoltan Somogyi,et al.  The Execution Algorithm of Mercury, an Efficient Purely Declarative Logic Programming Language , 1996, J. Log. Program..

[17]  Manuel V. Hermenegildo Programming with global analysis , 1997, ICLP 1997.

[18]  Manuel V. Hermenegildo,et al.  Abstract Specialization and Its Application to Program Parallelization , 1996, LOPSTR.

[19]  Giorgio Levi,et al.  Abstract Debugging of Logic Program , 1994, META.

[20]  Dino Pedreschi,et al.  Reasoning about Termination of Pure Prolog Programs , 1993, Inf. Comput..

[21]  Jan Maluszy¿ski Programming with Global Analysis , 1997 .

[22]  Patrick Cousot,et al.  Abstract interpretation: a unified lattice model for static analysis of programs by construction or approximation of fixpoints , 1977, POPL.

[23]  Giorgio Levi,et al.  Proving Properties of Logic Programs by Abstract Diagnosis , 1996, LOMAPS.