JFLP: Volume 1997, Article 3
The Journal of Functional and Logic Programming
Volume 1997
Article 3
Published by The MIT Press . Copyright 1997 Massachusetts Institute of Technology.
Your institution may already be a subscriber to JFLP. If not, please subscribe for legitimate access to all journal articles.
4 April 1997
Abstract
We present a very simple but flexible declarative debugging scheme. A declarative debugger can be defined in Prolog with a single clause, and relies on the definition of just two additional predicates. With suitable definitions of these predicates, the debugger can diagnose several classes of bugs in many languages. We give examples of diagnoses of wrong answers in functional, relational, and object-oriented languages as well as missing answers in relational languages and calls that are not well defined in functional languages. By using declarative semantics of programs, the debugger is able to hide complex execution mechanisms such as unification, backtracking, coroutining, parallelism, higher-order functions, lazy evaluation, message passing, and inheritance.The following versions of the article are available:
-
Preformatted versions of the article (compressed with
gzip
)- DVI (gzip'ped 29 kb)
- PostScript (gzip'ped 66 kb)
-
LaTeX
(
JFLP-A97-03.tex
, gzip'ped 16 kb) -
BIBTeX
(
JFLP-A97-03.bib
, gzip'ped 3 kb) -
Figure 1
(
JFLP-A97-03-f1.eps
, gzip'ped 1 kb) -
Figure 4
(
JFLP-A97-03-f4.eps
, gzip'ped 1 kb) -
Figure 7
(
JFLP-A97-03-f7.eps
, gzip'ped 1 kb) -
Figure 10
(
JFLP-A97-03-f10.eps
, gzip'ped 1 kb) - Parameter settings for custom formatting ( cjropts.tex , 117 bytes)
Self citation
@article{jflp97-03, author={Lee Naish}, title={A Declarative Debugging Scheme}, journal={Journal of Functional and Logic Programming}, volume={1997}, number={3}, publisher={The MIT Press}, month={April}, year={1997} }