Attribute grammars as a functional programming paradigm
Proc. of a conference on Functional programming languages and computer architecture
Time and space profiling for non-strict, higher-order functional languages
POPL '95 Proceedings of the 22nd ACM SIGPLAN-SIGACT symposium on Principles of programming languages
Why no one uses functional languages
ACM SIGPLAN Notices
Tracing piece by piece: affordable debugging for lazy functional languages
Proceedings of the fourth ACM SIGPLAN international conference on Functional programming
Efficient compilation of lazy evaluation
SIGPLAN '84 Proceedings of the 1984 SIGPLAN symposium on Compiler construction
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
The Location of Errors in Functional Programs
AADEBUG '93 Proceedings of the First International Workshop on Automated and Algorithmic Debugging
The nofib Benchmark Suite of Haskell Programs
Proceedings of the 1992 Glasgow Workshop on Functional Programming
Complete and Partial Redex Trails of Functional Computations
IFL '97 Selected Papers from the 9th International Workshop on Implementation of Functional Languages
LFP '84 Proceedings of the 1984 ACM Symposium on LISP and functional programming
The Implementation of Functional Programming Languages (Prentice-Hall International Series in Computer Science)
A program transformation for debugging Haskell 98
ACSC '03 Proceedings of the 26th Australasian computer science conference - Volume 16
HsDebug: debugging lazy programs by not being lazy
Haskell '03 Proceedings of the 2003 ACM SIGPLAN workshop on Haskell
Practical aspects of declarative debugging in Haskell 98
Proceedings of the 5th ACM SIGPLAN international conference on Principles and practice of declaritive programming
A declarative debugger of incorrect answers for constraint functional-logic programs
Proceedings of the 2005 ACM SIGPLAN workshop on Curry and functional logic programming
Algorithmic Debugging of Java Programs
Electronic Notes in Theoretical Computer Science (ENTCS)
ICFP '07 Proceedings of the 12th ACM SIGPLAN international conference on Functional programming
A lightweight interactive debugger for haskell
Haskell '07 Proceedings of the ACM SIGPLAN workshop on Haskell workshop
Declarative Debugging of Membership Equational Logic Specifications
Concurrency, Graphs and Models
A Declarative Debugger for Maude Functional Modules
Electronic Notes in Theoretical Computer Science (ENTCS)
A Logical Framework for Debugging in Declarative Constraint Programming
Electronic Notes in Theoretical Computer Science (ENTCS)
Introducing debugging capabilities to natural semantics
PSI'06 Proceedings of the 6th international Andrei Ershov memorial conference on Perspectives of systems informatics
Declarative diagnosis of missing answers in constraint functional-logic programming
FLOPS'08 Proceedings of the 9th international conference on Functional and logic programming
Enhancing the debugging of Maude specifications
WRLA'10 Proceedings of the 8th international conference on Rewriting logic and its applications
Declarative debugging with buddha
AFP'04 Proceedings of the 5th international conference on Advanced Functional Programming
Formalizing the debugging process in haskell
ICTAC'05 Proceedings of the Second international conference on Theoretical Aspects of Computing
Algorithmic debugging of SQL views
PSI'11 Proceedings of the 8th international conference on Perspectives of System Informatics
Declarative debugging of wrong and missing answers for SQL views
FLOPS'12 Proceedings of the 11th international conference on Functional and Logic Programming
Simplifying questions in maude declarative debugger by transforming proof trees
LOPSTR'11 Proceedings of the 21st international conference on Logic-Based Program Synthesis and Transformation
Hi-index | 0.00 |
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.