×

How to look busy while being as lazy as ever: The implementation of a lazy functional debugger. (English) Zbl 1037.68039

Summary: This article describes the implementation of a debugger for lazy functional languages like Haskell. The key idea is to construct a declarative trace which hides the operational details of lazy evaluation. However, to avoid excessive memory consumption, the trace is constructed one piece at a time, as needed during a debugging session, by automatic re-execution of the program being debugged. The article gives a fairly detailed account of both the underlying ideas and of our implementation, and also presents performance figures which demonstrate the feasibility of the approach.

MSC:

68N18 Functional programming and lambda calculus
68N15 Theory of programming languages

Software:

Freja; Hood; Hat; Haskell
PDFBibTeX XMLCite
Full Text: DOI