Generic Reduction-Based Interpreters (Extended Version)
Casper Bach

TL;DR
This paper introduces techniques from generic programming to simplify the implementation of reduction-based interpreters, significantly reducing boilerplate code and streamlining the development process.
Contribution
It applies generic programming methods to create more concise, maintainable reduction-based interpreters, addressing the common issue of verbose boilerplate code.
Findings
Reduced boilerplate code in interpreter implementations
Improved maintainability and clarity of interpreter code
Demonstrated applicability across various language semantics
Abstract
Reduction-based interpreters are traditionally defined in terms of a one-step reduction function which systematically decomposes a term into a potential redex and context, contracts the redex, and recomposes it to construct the new term to be further reduced. While implementing such interpreters follows a systematic recipe, they often require interpreter engineers to write a substantial amount of code -- much of it boilerplate. In this paper, we apply well-known techniques from generic programming to reduce boilerplate code in reduction-based interpreters.
Peer Reviews
No public reviews on file for this paper yet. If you reviewed it on a platform where reviews are public (OpenReview, ICLR, NeurIPS, ICML), you can paste yours below so the community can read it here.
Videos
No videos yet. Explain this paper in a talk, walkthrough, or lecture? Add one.
