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.