Lecture 7A: Metacircular Evaluator, Part 1
Why Hacker News recommends it
HN holds the SICP lectures up as joyful classics, and this lecture as the moment the evaluator is revealed.
What it is
Lecture 7A from MIT 6.001 (SICP) by Abelson and Sussman introduces the metacircular evaluator, a Scheme interpreter written in Scheme. It shows how evaluating a program is itself a program.
Recommended by 1 HN commenters across 1 different months, 2020 to 2023.
What Hacker News said
Strong rec mrspeaker · 2020-06 · on “MIT 6.001 Structure and Interpretation (1986) [video]”
I re-watch this course every bunch of years, and every time I get something different from it. But mostly it just makes me happy - it's infectious and weird. Especially the "revelation" (spoiler!) [this video]
Cites prezjordan · 2021-07 · on “Ink programming language”
I learned best in Scheme because you don't need to parse your input and can just evaluate a tree[0] (Parsing is, in my opinion, the most boring part about writing an interpreter!) Chapter 7 of Crafting Interpreters lays out how an evaluator works in a pretty clean way [1]. I've also blogged about evaluating ASTs in JavaScript [2] Lastly, Gary Bernhardt took it a step further and instead of "evaluating" code, "compiled" it to JavaScript (this tutorial uses Ruby) [3]. Very much a mind-blown moment for me. Have fun!! Writing interpreters remains one of my favorite things to do when learning a new programming language. [0] [this video] [1] [LINK] [2] [LINK] [3] [LINK]
Cites ufo · 2023-09 · on “Programming Language Inventor or Serial Killer?”
"We're getting really close to the spirit of the computer at this point, so I have to show a certain amount of reverence and respect" [this video]