Skip to content
0:00 / 0:00

#sicp#scheme#metacircularevaluator

Lecture 7A: Metacircular Evaluator, Part 1

MIT OpenCourseWare

6.5M subscribers • 36 videos on Hallway • University channel

YouTube
  • Recommended by 1 person: 1 on Hacker News.
  • Presented by Harold Abelson and Gerald Jay Sussman

Intermediate. Assumes working knowledge.

31K views7 years ago1 recommendation

Programming languagesComputer scienceFunctional programmingCompilers and interpreters

Harold Abelson and Gerald Jay Sussman introduce the metacircular evaluator, demonstrating how to write a Scheme interpreter in Scheme.

MIT 6.001 Structure and Interpretation of Computer Programs, Spring 2005 Instructor: Harold Abelson, Gerald Jay Sussman, Julie Sussman View the complete course: ocw.mit.edu/6-001S05 YouTube Playlist: youtube.com/playlist?list=PLE18841CABEA24090 Metacircular Evaluator, Part 1 Despite the copyright notice on the screen, this course is now offered under a Creative Commons license: BY-NC-SA. Details at ocw.mit.edu/terms Subtitles for this course are provided through the generous assistance of Henry Baker, Hoofar Pourzand, Heather Wood, Aleksejs Truhans, Steven Edwards, George Menhorn, and Mahendra Kumar. More courses at ocw.mit.edu

Why it's here

1 person recommends this

What people say. Highly regarded as a classic lecture that reveals the core mechanics of programming language interpreters.

Moments people linked to

mrspeakeron Hacker News • Recommends

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!) link to this video

u/jediknightin r/ProgrammingLanguages • Mentions

On “Which was the first programming language that the compiler compiled itself (bootstraped). Are there any registers of this? Who did?”

Meta-circular evaluator wikipedia page says 1958 for LISP. It is a memorable moment from the SICP course when professor Sussman puts on the jacket and the fez and explains it.

prezjordanon Hacker News • Mentions

On “Ink programming language”

I learned best in Scheme because you don't need to parse your input and can just evaluate a tree0 (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 link to this video 1 link 2 link 3 link

ufoon Hacker News • Mentions

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" link to this video

u/Dobiasin r/ProgrammingLanguages • Mentions

On “Idea: "ubiquefix" function-call syntax (prefix, infix, and postfix notation combined); Is it any good?”

Thanks for the candid feedback! After all these comments here, I'm already convinced it's probably a bad idea, and nobody should (or even would) use it. :) But before that, I had already started implementing it, and it was not a waste of my time at all! I had much fun and learned things about interpreters, for example, I finally understood the concept of the Metacircular Evaluator. :)
1View on Reddit