Declarative Debugging for Encapsulated Search

Declarative debugging has been proposed as a suitable technique for developing debuggers in the context of declarative languages. However, to become really useful debuggers must be able to deal with those parts of the languages that have no clear declarative semantics but are widely used in realistic programs. We explain in this paper how a declarative debugger of wrong answers for the lazy functional-logic language Curry can be extended to debug programs including the encapsulated search, an important feature of this language designed to control non-deterministic computation steps. We show how this can be done without introducing any changes in the compiler.

[1]  Henrik Nilsson,et al.  Algorithmic Debugging for Lazy Functional Languages , 1994, J. Funct. Program..

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

[3]  Wolfgang Lux Implementing Encapsulated Search for a Lazy Functional Logic Language , 1999, Fuji International Symposium on Functional and Logic Programming.

[4]  Uday S. Reddy,et al.  Imperative functional programming , 1996, CSUR.

[5]  Francisco Javier López-Fraguas,et al.  TOY: A Multiparadigm Declarative System , 1999, RTA.

[6]  Lee Naish,et al.  Towards a portable lazy functional declarative debug-ger , 1995 .

[7]  Michael Hanus,et al.  Controlling Search in Declarative Programs , 1998, PLILP/ALP.

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

[9]  Henrik Nilsson,et al.  Algorithmic debugging for lazy functional languages , 1992, Journal of Functional Programming.

[10]  Rafael Caballero,et al.  Theoretical Foundations for the Declarative Debugging of Lazy Functional Logic Programs , 2001, FLOPS.

[11]  M. Hanus,et al.  Curry: An Integrated Functional Logic Language , 2003 .

[12]  Mario Rodríguez-Artalejo,et al.  A Declarative Debugging System for Lazy Functional Logic Programs , 2002, WFLP.

[13]  María Alpuente,et al.  A Debugging Scheme for Functional Logic Programs1 1This work has been partially supported by CICYT under grant TIC2001-2705-C03-01, by Acción Integrada Hispano-Italiana HI2000-0161, Acción Integrada Hispano-Alemana HA2001-0059 and by Generalitat Valenciana under grant GV01-424. , 2002 .

[14]  Michael Hanus,et al.  Curry: an integrated functional logic language (version 0 , 2003 .

[15]  Henrik Nilsson,et al.  The Evaluation Dependence Tree as a Basis for Lazy Functional Debugging , 1997, Automated Software Engineering.