Affiliation:
1. Indiana University, USA
2. University of St. Andrews, UK
Abstract
Many programming languages and proof assistants are defined by elaboration from a high-level language with a great deal of implicit information to a highly explicit core language. In many advanced languages, these elaboration facilities contain powerful tools for program construction, but these tools are rarely designed to be repurposed by users. We describe
elaborator reflection
, a paradigm for metaprogramming in which the elaboration machinery is made directly available to metaprograms, as well as a concrete realization of elaborator reflection in Idris, a functional language with full dependent types. We demonstrate the applicability of Idris’s reflected elaboration framework to a number of realistic problems, we discuss the motivation for the specific features of its design, and we explore the broader meaning of elaborator reflection as it can relate to other languages.
Funder
Højteknologifonden
National Science Foundation
Engineering and Physical Sciences Research Council
Publisher
Association for Computing Machinery (ACM)
Subject
Computer Graphics and Computer-Aided Design,Software
Cited by
23 articles.
订阅此论文施引文献
订阅此论文施引文献,注册后可以免费订阅5篇论文的施引文献,订阅后可以查看论文全部施引文献
1. Layered Modal Type Theory;Lecture Notes in Computer Science;2024
2. ExEl: Building an Elaborator Using Extensible Constraints;The 35th Symposium on Implementation and Application of Functional Languages;2023-08-29
3. Practical generic programming over a universe of native datatypes;Proceedings of the ACM on Programming Languages;2022-08-29
4. Datatype-generic programming meets elaborator reflection;Proceedings of the ACM on Programming Languages;2022-08-29
5. EB4EB: A Framework for Reflexive Event-B;2022 26th International Conference on Engineering of Complex Computer Systems (ICECCS);2022-03