Simon Marlow and Simon Peyton Jones
January 2004
Higher-order languages that encourage currying are implemented using one of two basic evaluation models: push/enter or eval/apply. Implementors use their intuition and qualitative judgements to choose one model or the other.Our goal in this paper is to provide, for the first time, a more substantial basis for this choice, based on our qualitative and quantitative experience of implementing both models in a state-of-the-art compiler for Haskell.Our conclusion is simple, and contradicts our initial intuition: compiled implementations should use eval/apply.
In ICFP'04: Proceedings of the ACM SIGPLAN 2004 International Conference on Function Programming
Publisher ACM Press
| Type | Inproceedings |
| URL | http://www.haskell.org/~simonmar/papers/evalapplyjfp06.pdf |
| Pages | 4–15 |
| Volume | 16 |
| Number | 4--5 |
| ISBN | 1-58113-905-5 |