3 ms·
The first time I attempted a Lisp back in about 1989 or something, I used the metacircular evaluator from SICP. A little later I used Norvig's Scheme implement
by mikelevins 2y ago
The first time I attempted a Lisp back in about 1989 or something, I used the metacircular evaluator from SICP.
A little later I used Norvig's Scheme implementation from chapters 22 and 23 of PAIP (https://norvig.github.io/paip-lisp/#/?id=paradigms-of-artificial-intelligence-programming https://norvig.github.io/paip-lisp/#/?id=paradigms-of-artifi...).
I liked Norvig's a little better. It starts with a simple interpreter and adds improvements step-by-step, winding up with an optimizing compiler that targets a bytecode VM.
That approach makes a lot of implementation details manifest in a way that is easy to grasp. For example, I think I understood continuations much better after seeing Norvig's account of how to implement them.