ACM Home Page
Please provide us with feedback. Feedback
A nanopass infrastructure for compiler education
Full text PdfPdf (234 KB)
Source International Conference on Functional Programming archive
Proceedings of the ninth ACM SIGPLAN international conference on Functional programming table of contents
Snow Bird, UT, USA
SESSION: Session VII table of contents
Pages: 201 - 212  
Year of Publication: 2004
ISBN:1-58113-905-5
Also published in ...
Authors
Dipanwita Sarkar  Indiana University
Oscar Waddell  Abstrax, Inc.
R. Kent Dybvig  Indiana University
Sponsors
ACM: Association for Computing Machinery
SIGPLAN: ACM Special Interest Group on Programming Languages
Publisher
ACM  New York, NY, USA
Bibliometrics
Downloads (6 Weeks): 4,   Downloads (12 Months): 41,   Citation Count: 1
Additional Information:

abstract   references   cited by   index terms   review   collaborative colleagues  

Tools and Actions: Review this Article  
Save this Article to a Binder    Display Formats: BibTex  EndNote ACM Ref   
DOI Bookmark: Use this link to bookmark this Article: http://doi.acm.org/10.1145/1016850.1016878
What is a DOI?

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 structure a compiler as a collection of many small passes, each of which performs a single task. This "micropass" structure aligns the actual implementation of a compiler with its logical organization, simplifying development, testing, and debugging. Unfortunately, writing many small passes duplicates code for traversing and rewriting abstract syntax trees and can obscure the meaningful transformations performed by individual passes.To address these problems, we have developed a methodology and associated tools that simplify the task of building compilers composed of many fine-grained passes. We describe these compilers as "nanopass" compilers to indicate both the intended granularity of the passes and the amount of source code required to implement each pass. This paper describes the methodology and tools comprising the nanopass framework.


REFERENCES

Note: OCR errors may be found in this Reference List extracted from the full text article. ACM has opted to expose the complete List rather than only correct and linked references.

 
1
G. Aigner, A. Diwan, D. Heine, M. Lam, D. Moore, B. Murphy, and C. Sapuntzakis. An overview of the SUIF2 compiler infrastructure. Technical report, Stanford University, 2000.
 
2
G. Aigner, A. Diwan, D. Heine, M. Lam, D. Moore, B. Murphy, and C. Sapuntzakis. The SUIF2 compiler infrastructure. Technical report, Stanford University, 2000.
 
3
J.R. Allen and K. Kennedy. Pfc: A program to convert fortran to parallel form. Technical Report MASC-TR82-6, Rice University, Houston, TX, 1982.
4
 
5
 
6
7
8
 
9
N. Nystrom, M. Clarkson, and A. Myers. Polyglot: An extensible compiler framework for Java. In Proceedings of the 12th International Conference on Compiler Construction, volume 2622 of Lecture Notes in Computer Science, pages 138--152. Springer-Verlag, 2003.
 
10
Anthony Pioli and Michael Hind. Combining interprocedural pointer analysis and conditional constant propagation. Research Report 21532, IBM T. J. Watson Center, 1999.
11
 
12
 
13
C. van Reeuwijk. Rapid and robust compiler construction using template-based metacompilation. In Proceedings of the 12th International Conference on Compiler Construction, volume 2622 of Lecture Notes in Computer Science, pages 247--261. Springer-Verlag, 2003.
 
14
 
15
 
16
D.C. Wang, A.W. Appel, J.L. Korn, and C.S. Serra. The zephyr abstract syntax description language. In Proceedings of the USENIX Conference on Domain-Specific Languages, pages 213--228, 1997.
17
18



REVIEW

"Benjamin Rayborn Seyfarth : Reviewer"

Sarkar, Waddell, and Dybvig present their solution to the problem of how to implement a compiler project in a classroom. The general problem is that compilers are usually constructed to be of a few passes, and each pass is relatively complex, maki  more...

Collaborative Colleagues:
Dipanwita Sarkar: colleagues
Oscar Waddell: colleagues
R. Kent Dybvig: colleagues