A nanopass compiler is a compiler that deals with the complexity of compiling programming languages that have many features by making many small, iterative passes, each transforming a program into a simpler version of the programming language.

The nanopass approach started with Scheme, but it has been applied to other languages, including Resource Description Framework and APL. It was first developed for the Chez Scheme compiler.

Nanopass compilers are distinguished from other multi-pass compilers because they use explicit intermediate languages that are simpler subsets of the source language.

Due to easier comprehension and decreased learning curve, nanopass compilers are used in computer science education.

References

Further reading