A natural semantics for lazy evaluation
POPL '93 Proceedings of the 20th ACM SIGPLAN-SIGACT symposium on Principles of programming languages
Formally based profiling for higher-order functional languages
ACM Transactions on Programming Languages and Systems (TOPLAS)
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
Tracing Lazy Functional Computations Using Redex Trails
PLILP '97 Proceedings of the9th International Symposium on Programming Languages: Implementations, Logics, and Programs: Including a Special Trach on Declarative Programming Languages in Education
Complete and Partial Redex Trails of Functional Computations
IFL '97 Selected Papers from the 9th International Workshop on Implementation of Functional Languages
Practical aspects of declarative debugging in Haskell 98
Proceedings of the 5th ACM SIGPLAN international conference on Principles and practice of declaritive programming
How to look busy while being as lazy as ever: the Implementation of a lazy functional debugger
Journal of Functional Programming
Declarative debugging with buddha
AFP'04 Proceedings of the 5th international conference on Advanced Functional Programming
Comprehending finite maps for algorithmic debugging of higher-order functional programs
Proceedings of the 10th international ACM SIGPLAN conference on Principles and practice of declarative programming
Debugging Lazy Functional Programs by Asking the Oracle
Implementation and Application of Functional Languages
A Technique to Build Debugging Tools for Lazy Functional Logic Languages
Electronic Notes in Theoretical Computer Science (ENTCS)
Communications of the ACM
Hi-index | 0.02 |
Designing debugging tools for lazy functional programming languages is a complex task which is often solved by expensive tracing of lazy computations. We present a new approach in which the information collected as a trace is reduced considerably (kilobytes instead of megabytes). The idea is to collect a kind of step information for a call-by-value interpreter, which can then efficiently reconstruct the computation for debugging/viewing tools, like declarative debugging. We show the correctness of the approach, discuss a proof-of-concept implementation with a declarative debugger as back end and present some benchmarks comparing our new approach with the Haskell debugger Hat.