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
- ↑ Sarkar, Dipanwita; Waddell, Oscar; Dybvig, R. Kent (2004-09-19). "A nanopass infrastructure for compiler education" (in en). ACM SIGPLAN Notices 39 (9): 201–212. doi:10.1145/1016848.1016878. ISSN 0362-1340. https://dl.acm.org/doi/10.1145/1016848.1016878.
- ↑ 2.0 2.1 Keep, Andrew W.; Dybvig, R. Kent (2013-09-25). "A nanopass framework for commercial compiler development" (in en). ICFP '13: Proceedings of the 18th ACM SIGPLAN international conference on Functional programming (ACM): 343–350. doi:10.1145/2500365.2500618. ISBN 978-1-4503-2326-0. https://dl.acm.org/doi/10.1145/2500365.2500618.
- ↑ Ringo, Nathan; Kramer, Lucas; Van Wyk, Eric (2023-10-23). "Nanopass Attribute Grammars" (in en). SLE 2023: Proceedings of the 16th ACM SIGPLAN International Conference on Software Language Engineering (ACM): 70–83. doi:10.1145/3623476.3623514. ISBN 979-8-4007-0396-6. https://dl.acm.org/doi/10.1145/3623476.3623514.
- ↑ Guthrie, Duncan; Harvey, Paul; Sevegnani, Michele (2026-07-02). "A nanopass approach to a modular RDF implementation" (in en). SLE '26: Proceedings of the 19th ACM SIGPLAN International Conference on Software Language Engineeri (ACM): 22–33. doi:10.1145/3806383.3815514. ISBN 979-8-4007-2639-2. https://dl.acm.org/doi/10.1145/3806383.3815514.
- ↑ Reinders, Jaro S. (2023). Lämmel, Ralf; Mosses, Peter D.; Steimann, Friedrich. eds. "Towards Modular Compilation Using Higher-Order Effects". Eelco Visser Commemorative Symposium (EVCS 2023). Open Access Series in Informatics (OASIcs) (Dagstuhl, Germany: Schloss Dagstuhl – Leibniz-Zentrum für Informatik) 109: 22:1–22:9. doi:10.4230/OASIcs.EVCS.2023.22. ISBN 978-3-95977-267-9. https://drops.dagstuhl.de/entities/document/10.4230/OASIcs.EVCS.2023.22.
- ↑ Sarkar, Dipanwita; Waddell, Oscar; Dybvig, R. Kent (September 2005). "EDUCATIONAL PEARL: A Nanopass framework for compiler education" (in en). Journal of Functional Programming 15 (5): 653–667. doi:10.1017/S0956796805005605. ISSN 1469-7653. https://www.cambridge.org/core/journals/journal-of-functional-programming/article/educational-pearl-a-nanopass-framework-for-compiler-education/1E378B9B451270AF6A155FA0C21C04A3.
Further reading
- Keep, Andy (2014-01-06). Writing a Nanopass Compiler – via YouTube.
