language: en

Jonathan E. Hazan and Richard G. Morgan
Technical Report no. 3/92
Artificial Intelligence Systems Research Group Computer Science Division School of Engineering and Computer Science University of Durham,
DH1 3LE, UK
12th July 1993

Abstract Programmers using imperative languages have a number of well-established debugging tools available to them; functional programmers have few, if any, tools available. Many of the tools and techniques developed for debugging functional programs are based on those for imperative programming and lack a theoretical basis relevant to functional programming. In addition, the techniques used are typically very time-consuming. A theoretical foundation on which to base the study of errors and debugging in functional programming is presented in this report. Using this theoretical foundation, a set of program transformation schemes has been developed which facilitate the location of the type of error which results in an evaluation-time error message and the termination of evaluation. A brief description of the practical experience ob tained using the tool is also presented.

[The authors can be contacted by emailing]

J.E.Hazan@durham.ac.uk. FAX: +44 (0)91 374 3741.

[This research is funded by a grant from the Science and Engineering Research Council of Great Britain.]