Lazy algorithmic debugging: Ideas for practical implementation
1993 (English)In: Automated and Algorithmic Debugging, Springer Berlin/Heidelberg, 1993, 117-134 p.Conference paper (Refereed)
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. Our earlier work showed that this is a promising approach. However, the current version of our debugger has severe implementational problems, e.g. too large trace size and too many questions asked. This paper suggests a number of techniques for overcoming these problems, at least partially. The key techniques are immediate strictification and piecemeal tracing.
Place, publisher, year, edition, pages
Springer Berlin/Heidelberg, 1993. 117-134 p.
Lecture Notes in Computer Science, ISSN 0302-9743 (print), 1611-3349 (online) ; 749
Electrical Engineering, Electronic Engineering, Information Engineering
IdentifiersURN: urn:nbn:se:liu:diva-110093DOI: 10.1007/BFb0019405ISBN: 978-3-540-57417-0 (print)ISBN: 978-3-540-48141-6 (online)OAI: oai:DiVA.org:liu-110093DiVA: diva2:742731
First International Workshop, AADEBUG '93, Linköping, Sweden, May 3–5, 1993