Tracing piece by piece: affordable debugging for lazy functional languages
Proceedings of the fourth ACM SIGPLAN international conference on Functional programming
Algorithmic Program DeBugging
The Evaluation Dependence Tree as a Basis for Lazy FunctionalDebugging
Automated Software Engineering
Structure and Properties of Traces for Functional Programs
Electronic Notes in Theoretical Computer Science (ENTCS)
ICFP '07 Proceedings of the 12th ACM SIGPLAN international conference on Functional programming
Transforming Haskell for tracing
IFL'02 Proceedings of the 14th international conference on Implementation of functional languages
Declarative debugging with buddha
AFP'04 Proceedings of the 5th international conference on Advanced Functional Programming
Hi-index | 0.00 |
Algorithmic debuggers for higher-order functional languages have to display functional values. Originally functional values had been represented as partial applications of function and constructor symbols, but a recent approach represents functional values as finite maps. The two representations require the computation tree that is central to algorithmic debugging to be structured rather differently. In this paper we present a unifying framework that formally defines algorithmic debugging for both representations in an implementation-independent way for both strict and non-strict functional languages. On this basis we prove the soundness of algorithmic debugging with finite maps. Our framework shows how a single implementation can support both forms of algorithmic debugging. The proof exposed that algorithmic debugging with finite maps does not handle arbitrary functional programs, but in current practice the problematic ones are excluded by the type system. Both framework and proof suggest variations of algorithmic debugging with finite maps and thus are tools for further improvement of this form of debugging