论文标题
逐个名称只是逐个电话,并带有划界控件
Call-By-Name Is Just Call-By-Value with Delimited Control
论文作者
论文摘要
界定的控制算子Shift0具有多功能功能:它可以表达分层的单层效应,也可以等效地表示代数效应。我们几乎不知道它也可以表达lambda微积分! We present $ Λ_\$ $, a call-by-value lambda calculus extended with shift0 and control delimiter $ \$ $ with carefully crafted reduction theory, such that the lambda calculus with beta and eta reductions can be isomorphically embedded into $ Λ_\$ $ via a right inverse of a continuation-passing style translation.虽然lanbda cyculus的呼叫降低可以微不足道地模拟其逐个价值版本,但我们表明,添加Shift0和$ \ $ $的添加是表达能力的黄金表示,足以模拟Beta和ETA降低,同时仍然可以录制模拟。作为推论,calculi $λμ_v$,$λ_ \ $ $,$λ_ \ $ $和$λ$全部相应。
Delimited control operator shift0 exhibits versatile capabilities: it can express layered monadic effects, or equivalently, algebraic effects. Little did we know it can express lambda calculus too! We present $ Λ_\$ $, a call-by-value lambda calculus extended with shift0 and control delimiter $ \$ $ with carefully crafted reduction theory, such that the lambda calculus with beta and eta reductions can be isomorphically embedded into $ Λ_\$ $ via a right inverse of a continuation-passing style translation. While call-by-name reductions of lambda calculus can trivially simulate its call-by-value version, we show that addition of shift0 and $ \$ $ is the golden mean of expressive power that suffices to simulate beta and eta reductions while still admitting a simulation back. As a corollary, calculi $ Λμ_v $, $ λ_\$ $, $ Λ_\$ $ and $ λ$ all correspond equationally.