Lecture 7A: Metacircular Evaluator, Part 1
MIT OpenCourseWare1 HN recommenders · 2020–2023
32K views · lecture · evergreen · Uploaded 2019-08-22
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.
HN holds the SICP lectures up as joyful classics, and this lecture as the moment the evaluator is revealed.
53:22Ruby Conf 12 - Y Not- Adventures in Functional Programming by Jim Weirich
Confreaks
1:03:43How to Speak
MIT OpenCourseWare
57:151. Introduction to Human Behavioral Biology
Stanford
42:03The Soul of Erlang and Elixir • Sasa Juric • GOTO 2019
GOTO Conferences
1:01:39"Simple Made Easy" - Rich Hickey (2011)
Strange Loop Conference
1:21:52LEADERSHIP LAB: The Craft of Writing Effectively
UChicago Social Sciences
36:45Rich Harris - Rethinking reactivity
You Gotta Love Frontend
25:06"Making Impossible States Impossible" by Richard Feldman
elm-conf
3 comments from Hacker News
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!) [VIDEO]
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] [VIDEO] [1] [LINK] [2] [LINK] [3] [LINK]
"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" [VIDEO]