Implementing Languages for Fun and Profit
summary
Built a small Rust-like language called Dada and a live web playground compiled to WebAssembly that continues running despite parse errors, letting users edit and run code; prototype deliberately skips features like binary operators to move fast. Type rules get explored and executed using PLT Redex; a backwards, demand-driven incremental compiler is implemented with salsa ideas so only needed functions parse/type-check; tutorials plus a spike prototype prove the design and attract contributors via a tangible Dada playground.
AI-written summary · about
chapters (21)
- 0:00Intro
- 1:25Implementing languages for fun and profit
- 6:12Two basic lessons
- 7:21Loops, loops, and more loops
- 7:56The basic cycle
- 10:35Getting started with Dada
- 12:10Variations on Rusts type system
- 14:55Writing the tutorial
- 20:06Dada hypotheses
- 21:43Step 3: Incremental system of my dreams
- 22:21Compilers a la Dragon Book
- 23:27Responsive compilers
- 25:33Working backwards
- 27:23Incremental compilation
- 28:30Compilers a la Salsa
- 29:04Spiking the compiler
- 30:10A few notes on open source
- 31:17Making it feel real
- 33:48Bonus item 1: seeking inspiration
- 34:50Bonus item 2: Cool compiler books
- 35:12Conclusions
related talks
01h 02mProgramming Language Research for Technical and Social Good: What PL Can Do for Good?
28m"Making a Programming Language for 3D Design"
45mLanguage-Oriented Programming with Racket
30mAn Incremental Approach to JIT Construction
46mInventing a language (placeholder title)
01h 01mChallenges in the Design and Implementation of Teaching Languages for EDSLs
40mIntegrating IDEs with Dotty the experimental Scala compiler
48mRapid Programming Language Prototypes with Ruby RACC
