M-expressions to Forth, Landin, SECD, Danvy, and Oleg
mention a few days ago of the Lisp 1.5 manual was related to
an intent "to mess around some with M-expressions". Namely, I
thought it would be nice to write up a moderately minimal
implementation in a more modern, concise, widely-available language.
But then I got
sidetracked into thinking about minimal forth implementations,
thinking about what a forth-like language would be like if the
stack were a stack of lisp-ish cons cells, and finally decided
that some of the early lisp guys must have done something similar.
This eventually led me to read
Olivier Danvy's 2003 paper
"A Rational Deconstruction of Landin's SECD Machine".
I had only vaguely ever heard of the SECD machine before,
but it does indeed look like what I was wondering about
as described above.
Danvy's reconstruction without the "D"
seems simplest to me.
So this sidetrack will probably remain
a thorn in my side until I can interpret some of
Oleg's basic lambda-calculus expressions in some form.