Tm: a code generator for recursive data structures
Software—Practice & Experience
Syntactic abstraction in Scheme
Lisp and Symbolic Computation
TIL: a type-directed optimizing compiler for ML
PLDI '96 Proceedings of the ACM SIGPLAN 1996 conference on Programming language design and implementation
Revised5 report on the algorithmic language scheme
ACM SIGPLAN Notices
Deforestation: Transforming Programs to Eliminate Trees
ESOP '88 Proceedings of the 2nd European Symposium on Programming
Polyglot: an extensible compiler framework for Java
CC'03 Proceedings of the 12th international conference on Compiler construction
Rapid and robust compiler construction using template-based metacompilation
CC'03 Proceedings of the 12th international conference on Compiler construction
GPCE '07 Proceedings of the 6th international conference on Generative programming and component engineering
A pattern for almost compositional functions
Journal of Functional Programming
Science of Computer Programming
ESOP'13 Proceedings of the 22nd European conference on Programming Languages and Systems
Hi-index | 0.00 |
A compiler structured as a small number of monolithic passes is difficult to understand and difficult to maintain. The steep learning curve is daunting, and even experienced developers find that modifying existing passes is difficult and often introduces 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 fine-grained passes, each of which performs a single task. This structure aligns the implementation of a compiler with its logical organization, simplifying development, testing, and debugging. This paper describes the methodology and tools comprising a framework for constructing such compilers.