๐ค AI Summary
Specification-based interpreters suffer from excessive boilerplate code and poor maintainability. Method: This paper proposes a generic programmingโbased automated construction methodology. It decomposes syntactic constructs into reducible expressions and contexts, and leverages recursive data type modeling, pattern matching, and structured reduction strategies to automatically derive and reorganize reduction logic. Contribution/Results: To our knowledge, this is the first application of generic programming to reduction interpreter design, eliminating substantial hand-written template code inherent in conventional implementations. Experimental evaluation demonstrates that the approach reduces code volume by approximately 60% on average, significantly improves modularity, and enhances cross-language reusability. These results validate the effectiveness and practicality of the generic reduction framework in interpreter engineering.
๐ 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.