2004
DOI: 10.1145/1016848.1016878
|View full text |Cite
|
Sign up to set email alerts
|

A nanopass infrastructure for compiler education

Abstract: Compilers structured as a small number of monolithic passes are difficult to understand and difficult to maintain. Adding new optimizations often requires major restructuring of existing passes that cannot be understood in isolation. The steep learning curve is daunting, and even experienced developers find it hard to modify existing passes without introducing subtle and tenacious bugs. These problems are especially frustrating when the developer is a student in a compiler class.An attractive alternative is to… Show more

Help me understand this report

Search citation statements

Order By: Relevance

Paper Sections

Select...
2
1
1

Citation Types

0
11
0

Year Published

2009
2009
2014
2014

Publication Types

Select...
3
2
1

Relationship

0
6

Authors

Journals

citations
Cited by 12 publications
(11 citation statements)
references
References 12 publications
0
11
0
Order By: Relevance
“…Tock is currently over 20,000 non-blank lines of Haskell code. Tock is a nanopass compiler (Sarkar et al 2004), meaning that its design consists of many (currently around 40) small passes that operate on the Abstract Syntax Tree (AST) of the program, each performing one simple operation, for example: making names unique, or checking that variables declared constant are not modified. A pass that makes names unique must traverse the entire AST, operating on all names.…”
Section: Motivationmentioning
confidence: 99%
“…Tock is currently over 20,000 non-blank lines of Haskell code. Tock is a nanopass compiler (Sarkar et al 2004), meaning that its design consists of many (currently around 40) small passes that operate on the Abstract Syntax Tree (AST) of the program, each performing one simple operation, for example: making names unique, or checking that variables declared constant are not modified. A pass that makes names unique must traverse the entire AST, operating on all names.…”
Section: Motivationmentioning
confidence: 99%
“…The Harlan compiler is written in Scheme as a nanopassstyle compiler [26]. Programs are read in as S-Expressions and compiled into C++ programs that use OpenCL.…”
Section: Compilationmentioning
confidence: 99%
“…An approach related to compilation by normalization is the nanopass compiler infrastructure of Sarkar et al [52], which advocates the design of compilers as a long pipeline of very small stages in order to enhance the understandability of the compiler in an educational context. Each stage transforms the program to an intermediate, more low-level form.…”
Section: Compilation By Normalizationmentioning
confidence: 99%