Journal of Functional Programming · 2005 · 24 citations · 7 references
EngineeringCompiler TechnologyComputer ArchitectureSoftware EngineeringSoftware AnalysisFormal VerificationProgramming Language TeachingEducational PearlCompiler ClassCompilersMonolithic PassesDynamic CompilationCompiler SupportDesignComputer EngineeringComputer ScienceOptimizing CompilerStatic Program AnalysisSoftware DesignProgram AnalysisSoftware TestingProgram ComprehensionFormal MethodsSteep Learning CurveSystem Software
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.
7
Deforestation: transforming programs to eliminate trees
Philip Wadler · Theoretical Computer Science · 1990 · 706 citations
Revised<sup>6</sup> Report on the Algorithmic Language Scheme
Michael Sperber, R. Kent Dybvig, Matthew Flatt et al. · Journal of Functional Programming · 2009 · 325 citations · Full text
Revised <sup>5</sup> report on the algorithmic language scheme
Norman I. Adams, D. H. Bartley, G. Brooks et al. · ACM SIGPLAN Notices · 1998 · 316 citations · Full text
David Tarditi, Greg Morrisett, Pau-Chen Cheng et al. · 1996 · 315 citations · Full text
PFC: A Program to Convert Fortran to Parallel Form
John R. Allen, Ken Kennedy · 1982 · 196 citations · Full text