Garbage collection can be faster than stack allocation
Information Processing Letters
I-structures: data structures for parallel computing
ACM Transactions on Programming Languages and Systems (TOPLAS)
A classical mind
A call-by-need lambda calculus
POPL '95 Proceedings of the 22nd ACM SIGPLAN-SIGACT symposium on Principles of programming languages
Semantics of barriers in a non-strict, implicitly-parallel language
FPCA '95 Proceedings of the seventh international conference on Functional programming languages and computer architecture
How much non-strictness do lenient programs require?
FPCA '95 Proceedings of the seventh international conference on Functional programming languages and computer architecture
Highlights from nhc—a space-efficient Haskell compiler
FPCA '95 Proceedings of the seventh international conference on Functional programming languages and computer architecture
A transformation-based optimiser for Haskell
Science of Computer Programming - Special issue on the 6th European symposium on programming
Cheap eagerness: speculative evaluation in a lazy functional language
ICFP '00 Proceedings of the fifth ACM SIGPLAN international conference on Functional programming
Implicit parallel programming in pH
Implicit parallel programming in pH
Structure and Interpretation of Computer Programs
Structure and Interpretation of Computer Programs
A Multithreaded Substrate and Compilation Model for the Implicity Parallel Language pH
LCPC '96 Proceedings of the 9th International Workshop on Languages and Compilers for Parallel Computing
The nofib Benchmark Suite of Haskell Programs
Proceedings of the 1992 Glasgow Workshop on Functional Programming
Garbage Collection is Fast, but a Stack is Faster
Garbage Collection is Fast, but a Stack is Faster
Compiling for parallel multithreaded computation on symmetric multiprocessors
Compiling for parallel multithreaded computation on symmetric multiprocessors
Generating multithreaded code from parallel haskell for symmetric multiprocessors
Generating multithreaded code from parallel haskell for symmetric multiprocessors
Hybrid eager and lazy evaluation for efficient compilation of haskell
Hybrid eager and lazy evaluation for efficient compilation of haskell
The call-by-need lambda calculus
Journal of Functional Programming
What is a purely functional language?
Journal of Functional Programming
The call-by-need lambda calculus
Journal of Functional Programming
The Implementation of Functional Programming Languages (Prentice-Hall International Series in Computer Science)
HsDebug: debugging lazy programs by not being lazy
Haskell '03 Proceedings of the 2003 ACM SIGPLAN workshop on Haskell
Optimistic evaluation: an adaptive evaluation strategy for non-strict programs
ICFP '03 Proceedings of the eighth ACM SIGPLAN international conference on Functional programming
Smarter garbage collection with simplifiers
Proceedings of the 2006 workshop on Memory system performance and correctness
A history of Haskell: being lazy with class
Proceedings of the third ACM SIGPLAN conference on History of programming languages
Structure and Properties of Traces for Functional Programs
Electronic Notes in Theoretical Computer Science (ENTCS)
ESOP'13 Proceedings of the 22nd European conference on Programming Languages and Systems
Proceedings of the 41st ACM SIGPLAN-SIGACT Symposium on Principles of Programming Languages
Hi-index | 0.00 |
The advantages of the Haskell programming language are rooted in its clean equational semantics. Those advantages evaporate as soon as programmers try to write simple iterative computations and discover that their code must be annotated with calls to seq in order to overcome space leaks introduced by lazy evaluation. The Eager Haskell compiler executes Haskell programs eagerly by default, i.e., bindings and function arguments are evaluated before bodies. When resource bounds are exceeded, computation falls back and is restarted lazily. By using a hybrid of eager and lazy evaluation, we preserve the semantics of Haskell and yet permit efficient iteration.