Nanopass compiler

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.[1][2][3]

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

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

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

References

  1. ↑ Sarkar, Dipanwita; Waddell, Oscar; Dybvig, R. Kent (2004-09-19). "A nanopass infrastructure for compiler education". ACM SIGPLAN Notices. 39 (9): 201–212. doi:10.1145/1016848.1016878. ISSN 0362-1340.
  2. 1 2 Keep, Andrew W.; Dybvig, R. Kent (2013-09-25). "A nanopass framework for commercial compiler development". Proceedings of the 18th ACM SIGPLAN international conference on Functional programming. ACM. pp. 343–350. doi:10.1145/2500365.2500618. ISBN 978-1-4503-2326-0.
  3. ↑ Ringo, Nathan; Kramer, Lucas; Van Wyk, Eric (2023-10-23). "Nanopass Attribute Grammars". Proceedings of the 16th ACM SIGPLAN International Conference on Software Language Engineering. ACM. pp. 70–83. doi:10.1145/3623476.3623514. ISBN 979-8-4007-0396-6.
  4. ↑ Guthrie, Duncan; Harvey, Paul; Sevegnani, Michele (2026-07-02). "A nanopass approach to a modular RDF implementation". Proceedings of the 19th ACM SIGPLAN International Conference on Software Language Engineering. ACM. pp. 22–33. doi:10.1145/3806383.3815514. ISBN 979-8-4007-2639-2.
  5. ↑ Reinders, Jaro S. (2023). Lämmel, Ralf; Mosses, Peter D.; Steimann, Friedrich (eds.). Towards Modular Compilation Using Higher-Order Effects. Vol. 109. Dagstuhl, Germany: Schloss Dagstuhl – Leibniz-Zentrum für Informatik. pp. 22:1–22:9. doi:10.4230/OASIcs.EVCS.2023.22. ISBN 978-3-95977-267-9.
  6. ↑ Sarkar, Dipanwita; Waddell, Oscar; Dybvig, R. Kent (September 2005). "EDUCATIONAL PEARL: A Nanopass framework for compiler education". Journal of Functional Programming. 15 (5): 653–667. doi:10.1017/S0956796805005605. ISSN 1469-7653.

Further reading