Lambda the Ultimate

inactiveTopic How to make a fast curry: push/enter vs eval/apply
started 4/27/2003; 7:20:12 AM - last post 4/27/2003; 7:20:12 AM
Ehud Lamm - How to make a fast curry: push/enter vs eval/apply  blueArrow
4/27/2003; 7:20:12 AM (reads: 1588, responses: 0)
How to make a fast curry: push/enter vs eval/apply
Simon Marlow and Simon Peyton Jones. 12 pages, March 2003.

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.

Well worth your time even if you are not going to implement a functional language any time soon.


Posted to implementation by Ehud Lamm on 4/27/03; 7:21:01 AM