DDT: a Declarative Debugging Tool for Functional-Logic Languages

We present a graphical tool for the declarative debugging of wrong answers in functional-logic languages. The tool, integrated in the system TOY, can be used to navigate a computation tree corresponding to some erroneous computation. During the navigation the users can either follow a fixed strategy or move freely providing information about the validity of the nodes as they like. We show by means of examples how this flexibility can reduce both the number and the complexity of the questions that the user must consider w.r.t. the usual top-down navigation strategy. Moreover, the tool includes some extra features that can be used to automatically simplify the computation trees.

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

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

[3]  J. C. Gonz Alez-Moreno,et al.  An Approach to Declarative Programming Based on a Rewriting Logic , 2022 .

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

[5]  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 .

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

[7]  Gérard Ferrand Error Diagnosis in Logic Programming, an Adaption of E. Y. Shapiro's Method , 1987, J. Log. Program..

[8]  Jan Maluszynski,et al.  Analysis and Visualization Tools for Constraint Programming , 2000, Lecture Notes in Computer Science.

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

[10]  J. S anchez Hern andez TO Y: A Multiparadigm Declarative System ? , 1999 .

[11]  Ralf Hinze,et al.  Haskell 98 — A Non−strict‚ Purely Functional Language , 1999 .

[12]  Kim Marriott,et al.  ViMer: a visual debugger for mercury , 2003, PPDP '03.

[13]  Mario Rodríguez-Artalejo,et al.  Polymorphic Types in Functional Logic Programming , 2001, J. Funct. Log. Program..

[14]  Henrik Nilsson,et al.  How to look busy while being as lazy as ever: the Implementation of a lazy functional debugger , 2001, Journal of Functional Programming.

[15]  Lee Naish,et al.  Practical aspects of declarative debugging in Haskell 98 , 2003, PPDP '03.

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

[17]  Mario Rodríguez-Artalejo,et al.  Semantics and Types in Functional Logic Programming , 1999, Fuji International Symposium on Functional and Logic Programming.

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

[19]  Rafael Caballero,et al.  Declarative Debugging for Encapsulated Search , 2002, Electron. Notes Theor. Comput. Sci..

[20]  Gérard Ferrand,et al.  Declarative Diagnosis in the CLP Scheme , 2000, Analysis and Visualization Tools for Constraint Programming.

[21]  Alan Bundy,et al.  Constructing Induction Rules for Deductive Synthesis Proofs , 2006, CLASE.

[22]  Simon L. Peyton Jones,et al.  Report on the programming language Haskell: a non-strict, purely functional language version 1.2 , 1992, SIGP.

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