Theoretical Foundations for the Declarative Debugging of Lazy Functional Logic Programs
The aim of this paper is to provide theoretical foundations for the declarative debugging of wrong answers in lazy functional logic programming. We rely on a logical framework which formalizes both the intended meaning and the execution model of programs in a simple language which combines the expressivity of pure Prolog and a significant subset of Haskell. As novelties w.r.t. to previous related approaches, we deal with functional values both as arguments and as results of higher order functions, we obtain a completely formal specification of the debugging method, and we extend known soundness and completeness results for the debugging of wrong answers in logic programming to a substantially more difficult context. A prototype implementation of a working debugger is planned as future work.
KeywordsLogic Programming Computation Tree Logical Framework Proof Tree Intended Model
Unable to display preview. Download preview PDF.
- 1.S. Antoy, R. Echahed, M. Hanus. A Needed Narrowing Strategy. 21st ACM Symp. on Principles of Programming Languages, Portland, ACM Press, pp. 268–279, 1994.Google Scholar
- 4.J.C. González-Moreno, M.T. Hortalá-González, M. Rodrìguez-Artalejo. A Higher Order Rewriting Logic for Functional Logic Programming. Procs. of ICLP’97, The MIT Press, pp. 153–167, 1997.Google Scholar
- 7.M. Hanus (ed.), Curry: an Integrated Functional Logic Language, Version 0.7, February 2, 2000. Available at http://www.informatik.uni-kiel.de/~curry/.
- 9.R. Loogen, F.J. López-Fraguas, M. Rodrìguez-Artalejo. A Demand Driven Computation Strategy for Lazy Narrowing. Procs. of PLILP’93, Springer LNCS 714, pp. 184-200, 1993.Google Scholar
- 11.L. Naish. Declarative dDebugging of Lazy Functional Programs. Australian Computer Science Communications, 15(1), pp. 287–294, 1993.Google Scholar
- 12.L. Naish. A Declarative Debugging Scheme. J. of Functional and Logic Programming, 1997-3.Google Scholar
- 13.L. Naish, T. Barbour. A Declarative Debugger for a Logical-Functional Language. In Graham Forsyth and Moonis Ali, eds. Eight International Conference on Industrial and Engineering Applications of Artificial Intelligence and Expert Systems Invited and additional papers, Vol. 2, pp. 91–99, 1995. DSTO General Document 51.Google Scholar
- 14.L. Naish, T. Barbour. Towards a Portable Lazy Functional Declarative Debugger. Australian Computer Science Communications, 18(1), pp. 401–408, 1996.Google Scholar
- 15.H. Nilsson, P. Fritzson. Algorithmic Debugging of Lazy Funcional Languages. The Journal of Functional Programming, 4(3), pp. 337–370, 1994.Google Scholar
- 17.H. Nilsson. Declarative Debugging for Lazy Functional Languages. Ph.D. Thesis. Dissertation No. 530. Univ. Linkóping, Sweden. 1998.Google Scholar
- 18.J. Peterson, K. Hammond (eds.), Report on the Programming Language Haskell 98, A Non-strict, Purely Functional Language, 1 February 1999.Google Scholar
- 19.E.Y. Shapiro. Algorithmic Program Debugging. The MIT Press, Cambridge,Mass., 1982.Google Scholar
- 20.L. Sterling, E. Shapiro. The Art of Prolog. The MIT Press, 1986.Google Scholar