SICP JS: Ketchup on Caviar?
summary
Adapts SICP to real-world JavaScript by defining four Source sublanguages that map SICP chapters to ECMAScript 2015 features (let/const, arrow funcs), adds an explicit parser so the meta‑circular evaluator works without homoiconicity, and implements a Source Academy transpiler that rejects non‑Source code, enforces lexical scope via name‑scanning, and wraps return values so the evaluator and compiler handle proper tail calls. The system runs in production (React front end, Elixir backend, AWS) and serves ~650 freshmen.
AI-written summary · about
chapters (11)
- 0:00Introduction to SICP JS
- 2:34Scheme vs JavaScript
- 4:21JavaScript's evolution
- 5:47Adapting material
- 8:54Minimal sub-languages
- 12:10Source Academy environment
- 15:22Technical implementation
- 20:34Handling homo-iconicity
- 27:28Managing scope and blocks
- 31:50Statement-oriented syntax
- 38:42Q&A session
related talks
19mXtreme Shrinking of JS for Teaching
26mMake Your Own Programming Language!
32mFull Disclosure – Visualizing JavaScript with the CSE Machine
31mJavaScript Compilers For Fun and Profit
27mParsing, Compiling, and Static Metaprogramming
14mA Relational Interpreter For Synthesizing JavaScript
20mFunctional JavaScript
35mFunctional programming and curry cooking in JS
