Making a fast curry: push/enter vs. eval/apply for higher-order languages

Making a fast curry: push/enter vs. eval/apply for higher-order languages
复制标题

快速柯里化:push/enter 与 eval/apply 用于高阶语言

DOI:
--
复制
发表时间:
2004
期刊:
ACM SIGPLAN International Conference on Functional Programming
影响因子:
--
通讯作者:
S. Jones
S. Jones
中科院分区:
--
文献类型:
--
作者:
S. Marlow;S. Jones

文献摘要

被引文献

相似文献

鼓励currying的高阶语言使用两种基本评估模型之一实现:push/enter或eval/apply。实现者利用他们的直觉和定性判断来选择一个模型或另一个模型。本文的目标是根据我们在Haskell最先进的编译器中实现这两个模型的定性和定量经验,首次为这种选择提供更实质性的基础。我们的结论很简单,但与我们最初的直觉相矛盾:编译后的实现应该使用eval/apply。
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.