Original author(s) | Peter Landin |
---|---|
Initial release | 1964 |
Operating system | Linux, Windows, DOS |
Platform | Free Pascal on IA-32, x86-64 |
Included with | Lispkit Lisp, Lisp/370, pure_LISP |
Size | ~ 76K, 185K, 920K |
Available in | English |
Type | virtual and abstract machine |
Website | skelet |
The SECD machine is a highly influential (see: Landin's contribution) virtual machine and abstract machine intended as a target for compilers of functional programming languages. The letters stand for stack
, environment
, control
, dump
, respectively, which are the internal registers of the machine. The registers stack
, control
, and dump
point to (some realizations of) stacks, and environment
points to (some realization of) an associative array.
The machine was the first to be specifically designed to evaluate lambda calculus expressions. It was originally described by Peter Landin in "The Mechanical Evaluation of Expressions" in 1964.[1] The description published by Landin was fairly abstract, and left many implementation choices open (like an operational semantics).
Lispkit Lisp was an influential compiler based on the SECD machine,[2] and the SECD machine has been used as the target for other systems such as Lisp/370.[3] In 1989, researchers at the University of Calgary worked on a hardware implementation of the machine, with the same rationale as a high-level language computer architecture related to a Lisp machine.[4]
© MMXXIII Rich X Search. We shall prevail. All rights reserved. Rich X Search