Proceedings of the Ninth ACM SIGPLAN International Conference on Functional Programming 2004
DOI: 10.1145/1016850.1016878
|View full text |Cite
|
Sign up to set email alerts
|

A nanopass infrastructure for compiler education

Help me understand this report

Search citation statements

Order By: Relevance

Paper Sections

Select...
1
1
1

Citation Types

0
3
0

Year Published

2005
2005
2024
2024

Publication Types

Select...
3
3
1

Relationship

0
7

Authors

Journals

citations
Cited by 17 publications
(3 citation statements)
references
References 12 publications
0
3
0
Order By: Relevance
“…To compile this high level language, we first translate it to an intermediate language similar to C, in which the order of evaluation is explicit in its syntax. The compiler is written in a nanopass style [Sarkar et al 2004], and is made up of five passes: (1) typecheck type checks the source program, (2) uniqify freshens all bound variables to handle shadowing, (3) explicateControl translates to an intermediate language similar to C, (4) selectInstructions generates x86 code which has variables in it, ( 5) and assignHomes maps each variable to a location on the stack. The input to this benchmark is a synthetically generated, balanced syntax-tree with conditional expressions at the top, followed by a sequence of let bindings.…”
Section: Results: X86-compiler Case Studymentioning
confidence: 99%
“…To compile this high level language, we first translate it to an intermediate language similar to C, in which the order of evaluation is explicit in its syntax. The compiler is written in a nanopass style [Sarkar et al 2004], and is made up of five passes: (1) typecheck type checks the source program, (2) uniqify freshens all bound variables to handle shadowing, (3) explicateControl translates to an intermediate language similar to C, (4) selectInstructions generates x86 code which has variables in it, ( 5) and assignHomes maps each variable to a location on the stack. The input to this benchmark is a synthetically generated, balanced syntax-tree with conditional expressions at the top, followed by a sequence of let bindings.…”
Section: Results: X86-compiler Case Studymentioning
confidence: 99%
“…Its authors developed it while implementing a nanopass-based compiler [Sarkar et al 2004] and developed it in order for their "compiler passes to traverse the abstract syntax tree quickly." Though we have chosen a different approach, our system is motivated by similar concerns.…”
Section: Alloymentioning
confidence: 99%
“…Sarkar et al [23] developed a compiler course (using Scheme) based on the nanopass framework, where the compiler consists of many small translation (or verification) processes written in a domain specific language developed for this purpose. Unlike nanopass, we chose to use ordinary ML as the meta language in order to avoid the overhead of understanding such a domain specific language itself, and to utilize the type system of ML for statically checking the syntactic validity of intermediate code even before running the compiler.…”
Section: Related Workmentioning
confidence: 99%