Sciweavers

POPL
2009
ACM

Lazy evaluation and delimited control

14 years 5 months ago
Lazy evaluation and delimited control
The call-by-need lambda calculus provides an equational framework for reasoning syntactically about lazy evaluation. This paper examines its operational characteristics. By a series of reasoning steps, we systematically unpack the standard-order reduction relation of the calculus and discover a stract machine definition which, like the calculus, goes "under lambdas." We prove that machine evaluation is equivalent to standard-order evaluation. raditional abstract machines, delimited control plays a significant role in the machine's behavior. In particular, the machine replaces the manipulation of a heap using store-based effects with disciplined management of the evaluation stack using control-based effects. In short, state is replaced with control. To further articulate this observation, we present a simulation of call-by-need in a call-by-value language using delimited control operations. Categories and Subject Descriptors D.3.1 [Software]: Programming Languages--Forma...
Ronald Garcia, Andrew Lumsdaine, Amr Sabry
Added 22 Nov 2009
Updated 22 Nov 2009
Type Conference
Year 2009
Where POPL
Authors Ronald Garcia, Andrew Lumsdaine, Amr Sabry
Comments (0)