CASE-a lazy version of an SECD machine with a flat environment
Antony J. T. Davie, David J. McNally · 2003
CASE is an abstract machine which supports applicative programming and is a variation of Landin's classical SECD machine (P.J. Landin, 1964). Its environment is organized in a novel way which makes variable access more efficient by removing the overhead of following a static chain or of setting up a display as in more conventional stack architectures. The CASE machine also has features allowing the execution of code to reflect lazy evaluation semantics. A description is given of the architecture of the machine, its operational semantics and code generated by a typical compiler for some sample programs. Also discussed are some optimizations made to facilitate efficient code generation on real hardware and some measurements of the efficiency of the machine.>