u/cutculusin r/ProgrammingLanguages • Recommends
Andy Keep - Writing a Nanopass Compiler
111K subscribers • 135 videos on Hallway
- Recommended by 5 people: 1 on Hacker News, 1 on Lobsters, 2 in engineering communities and 1 curated list.
- A classic. People kept recommending it from 2014 to 2020.
- Presented by Andy Keep
Intermediate. Assumes working knowledge.
28K views12 years ago5 recommendations
Systems programmingProgramming languagesCompilers and interpretersLanguage design and type systemsFunctional programming
Andy Keep explains the nanopass compiler framework, which manages compiler complexity by using many small, single-task passes with formally defined intermediate languages.
Contemporary compilers are among the most complex of software systems, typically being required to handle sophisticated high-level source languages, generate efficient code for multiple hardware architectures and operating systems, and support source-level debuggers, profilers, and other program development tools. Nanopass frameworks are designed to help manage this complexity. A nanopass compiler is comprised of many single-task passes with formally defined intermediate languages. The nanopass compiler technique evolved from a methodology for teaching a compiler course at Indiana University, into a full-fledged framework, capable of implementing a replacement for the Chez Scheme compiler that runs on par with the original compiler. This talk will discuss the idea of a nanopass compiler and the implementation of a simple language using the framework in Chez Scheme, along with the challenges and opportunities of using these techniques in Clojure. Andy is a postdoc at the University of Utah, currently working on malware detection in Android Apps, using both Scala and miniKanren to write abstract analyzers in Matt Might's lab. Andy completed his Ph.D. at Indiana University, defending his dissertation, "A Nanopass Framework for Commercial Compiler Development", in December 2012 and will be presenting a paper related to this work at this year's International Conference on Functional Programming. This project focused on replacing Chez Scheme's compiler with a nanopass compiler, along with his adviser R. Kent Dybvig. Before returning to graduate school in 2007, Andy worked in industry as a web developer, first for the consulting firms Razorfish and Gotham Broadband, along with some independent consulting work for Viacom, and later worked full time at Teach For America, maintaining both front-end and back-end web applications.Why it's here
5 people recommend thisWhat people say. Recommended as a great introduction to the nanopass compiler architecture and its origins in teaching compiler construction.
programming-talkscurated list on GitHubRecommends
Under “Compilers/Interpreters”
undecidaboton Hacker News • Recommends
On “MLton Compiler Overview”
u/johnfrazer783in r/ProgrammingLanguages • Mentions
On “From a PL perspective, how significant are the "shortcomings" of LaTeX?”
u/Roboguy2in r/ProgrammingLanguages • Mentions
On “Does anyone have issues with tightly coupled implementations?”
u/Deadly_Mindbeamin r/compsci • Mentions
On “Does anyone know of any good resources for building a compiler?”
616con Hacker News • Mentions
On “An Incremental Approach to Compiler Construction (2006) [pdf]”
vengariothon Hacker News • Mentions
On “Ask HN: Resources for building a programming language?”
LiamPowellon Hacker News • Mentions
On “Want to Write a Compiler? Just Read These Two Papers (2008)”
u/rlpin r/ProgrammingLanguages • Mentions
On “Dumbing down the syntax tree?”
u/mttdin r/ProgrammingLanguages • Mentions
On “The Nanopass Framework as a Nanopass Compiler - ELS 2020”
u/fullouterjoinin r/ProgrammingLanguages • Mentions
On “whats the best way to model a compiler using object oriented programmng?”
u/oilshellin r/ProgrammingLanguages • Mentions
On “Representing ASTs as byte strings with with small integers rather than pointers”
u/max_maximain r/ProgrammingLanguages • Mentions
On “A random idea - dynamic typing, static nullability”