Posts

Showing posts from February, 2026

SECD and Functional Lisp

Image
Image generated by Claude.ai The SECD machine  is a virtual machine designed to be a target m platform for functional programming languages, in particular Lispkit Lisp. the SECD name comes from the four basic registers of the virtual machine: stack, environment, control, and dump. Three of the registers typically act as stacks: stack, control, and dump. The environment register usually contains an associative array.  The SECD machine was originally described by Peter Landin in " The Mechanical Evaluation of Expressions " in 1964. The version I am considering here is described in  Peter Henderson's book Functional Programming Application and Implementation [1980]. It's out of print. You can find used copies for sale online.  S-expressions Each cycle of the SECD machine updates one or more of the registers. An SECD program is an encoding of a functional program into machine code. In the SECD representation, each operation is represented as a number. The SECD machine o...