EDUCATIONAL PEARL: A Nanopass framework for compiler education

  • Authors:
  • Dipanwita Sarkar;Oscar Waddell;R. Kent Dybvig

  • Affiliations:
  • Microsoft Corporation (e-mail: dipas@microsoft.com);Abstrax, Inc. (e-mail: owaddell@abstrax.com);Indiana University, IN, USA (e-mail: dyb@cs.indiana.edu)

  • Venue:
  • Journal of Functional Programming
  • Year:
  • 2005

Quantified Score

Hi-index 0.00

Visualization

Abstract

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.