- Full text PDF available (44)
- This year (2)
- Last 5 years (13)
- Last 10 years (25)
Journals and Conferences
syntax as a special case of recursively de ned data types; an encoding of recursive data types in Scheme.
We derive a simple abstract machine for lazy evaluation of the lambda calculus, starting from Launchbury's natural semantics. Lazy evaluation here means non-strict evaluation with sharing of argument evaluation, that is, call-by-need. The machine we derive is a lazy version of Krivine's abstract machine, which was originally designed for call-by-name… (More)
The present paper is an extended abstract of (Jones 1985), in which a running , non-trivial partial evaluator is described . As far as we know, this partia l evaluator is the first which has been used in practice to transform interpreters into corresponding stand-alone compilers, or to generate a compile r generator by transforming itself . A partial… (More)
2 Values and their Representation integer 32 bits, untagged. Unboxed (i.e., not region allocated). One bit is used for tagging when GC is enabled. real 64 bits, untagged. Boxed (i.e., allocated in region) string Unbounded size. Allocated in region. bool one 32-bit word. Unboxed. α list nil and :: cells unboxed (i.e., not region allocated). Auxiliary pairs… (More)
We describe lambda calculus reduction strategies using big-step operational semantics and show how to efficiently trace such reductions. This is used in a web-based lambda calculus reducer, at http://www.dina.kvl.dk/~sestoft/lamreduce/.
Modern bytecode execution environments with optimizing just-in-time compilers, such as Sun’s Hotspot Java Virtual Machine, IBM’s Java Virtual Machine, and Microsoft’s Common Language Runtime, provide an infrastructure for generating fast code at runtime. Such runtime code generation can be used for efficient implementation of parametrized algorithms. More… (More)