Nanopass Attribute Grammars
summary
Presents a formalism and prototype that combine nanopass compilers with attribute grammars, implementing a significant subset of Go to validate the approach. Uses transform attributes that auto-generate recursive propagation equations, and annotations to persist analyses (types) across pass boundaries. The system statically checks language well-definedness and circularity, lets many lowerings be written as one-line transforms instead of large rewrites, and ships a prototype and artifacts that demonstrate the technique working end-to-end.
AI-written summary · about
chapters (9)
- 0:00Nanopass attribute grammars intro
- 2:12Merging compilers and attribute grammars
- 6:21Formalism criteria
- 11:15Core components
- 15:26Defining and extending languages
- 17:11Transform attributes
- 19:00Language correctness and type checking
- 22:47Composing passes and future work
- 24:55Q&A
related talks
41mWriting a Nanopass Compiler
23mTyped, Concise, Nanopass (pick 3) (Extended Abstract)
40mType-safe Nanopasses: How to write a safe and modern compiler front-end
34mEfficient Nanopass Compilers using Cats and Matryoshka
25mNano-parsing: A Data-parallel Architecture for Perverse Parsing Environments
29mGrammar Inference for Ad Hoc Parsers
34mLanguage Design Where Paradigms Meet
15mMonadification of Attribute Grammars
