Nilsson, H. and Fritzson, P. (1992). Algorithmic Debugging for Lazy Functional Languages. Technical Report LiTH-IDA-R-92-17, Department of Computer and Information Science, Linköping University, Sweden. In Proceedings of PLILP'92, Symposium on Programming Language Implementation and Logic Programming, LNCS, Springer Verlag, Leuven, Belgium, August 26-28, 1992. Accepted to the Journal of Functional Programming, 1993. (bibtex),
Abstract: Lazy functional languages have non-strict semantics and are purely declarative, i.e. they support the notion of referential transparency and are devoid of side effects. Traditional debugging techniques are, however, not suited for lazy functional languages since computations generally do not take place in the order one might expect. Since algorithmic debugging allows the user to concentrate on the declarative aspects of program semantics, and will semi-automatically find functions containing bugs, we propose to use this technique for debugging lazy functional programs. In this paper we present an algorithmic debugger for a lazy functional language and some experience in using it. Because of the non-strict semantics of lazy functional languages, arguments to functions are in general partially evaluated expressions. The user is, however, usually more concerned with the values that these expressions represent. We address this problem by providing the user with a strictified view of the execution trace whenever possible. We believe, supported by , that this is the first algorithmic debugger for a lazy functional language.
CS Dept TR Overview