CASE-a lazy version of an SECD machine with a flat environment

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.<<ETX>>

[1]  P. J. Landin The Mechanical Evaluation of Expressions , 1964, Comput. J..

[2]  Ronald Morrison,et al.  On the development of Algol , 1979 .

[3]  Richard S. Bird,et al.  Introduction to functional programming , 1988, Prentice Hall International series in computer science.

[4]  Brian Randall,et al.  ALGOL 60 implementation , 1964 .

[5]  R. J. M. Hughes,et al.  Design and Implementation of Programming Languages , 1977, Lecture Notes in Computer Science.

[6]  D. A. Turner,et al.  Miranda: A Non-Strict Functional language with Polymorphic Types , 1985, FPCA.