Typed, Concise, Nanopass (pick 3) (Extended Abstract)
summary
Shows how to get a typed, concise, nanopass compiler by replacing recursive lists with a custom indexed args type and a single generic map traversal, moving head-specific checks into an expression type parameter so each pass stays small and proofs (round‑trip and idempotence-ish) remain constant‑size. Claims O(K+M) code where K is constructors and M is passes, but notes large constant glue factors and a conflation of modularity with nanopass architecture; prototype scale is modest and the work is ongoing.
AI-written summary · about
chapters (16)
- 0:00Introduction
- 0:21Maintainable compiler goals
- 1:02Compilers from first principles
- 3:07Monolithic compiler problem
- 3:28Nanopass architecture
- 4:31Boilerplate cost
- 5:14Simplifying traversals
- 7:00Conciseness versus type safety
- 8:02Type safety with indexed args
- 10:32Refactoring to typed compiler
- 11:35Modularity proof challenges
- 12:40Verbose proofs issue
- 14:02Postponing case splits
- 15:28Final compiler design
- 16:29Summary
- 17:34Q&A
related talks
41mWriting a Nanopass Compiler
40mType-safe Nanopasses: How to write a safe and modern compiler front-end
29mNanopass Attribute Grammars
34mEfficient Nanopass Compilers using Cats and Matryoshka
25mNano-parsing: A Data-parallel Architecture for Perverse Parsing Environments
01h 07mKeynote – Andy Keep
18mThe One Pass (OP) Compactor (an intellectual abstract)
34mLanguage Design Where Paradigms Meet
