Files in this item
Elaborator reflection : extending Idris in Idris
Item metadata
dc.contributor.author | Christiansen, David | |
dc.contributor.author | Brady, Edwin Charles | |
dc.date.accessioned | 2016-09-18T23:35:04Z | |
dc.date.available | 2016-09-18T23:35:04Z | |
dc.date.issued | 2016-09-04 | |
dc.identifier.citation | Christiansen , D & Brady , E C 2016 , Elaborator reflection : extending Idris in Idris . in Proceedings of the 21st ACM SIGPLAN International Conference on Functional Programming (ICFP 2016) . ACM SIGPLAN Notices , no. 9 , vol. 51 , ACM , New York , pp. 284-297 , ICFP 2016 - 21st ACM SIGPLAN International Conference on Functional Programming , Nara , Japan , 18/09/16 . https://doi.org/10.1145/2951913.2951932 | en |
dc.identifier.citation | conference | en |
dc.identifier.isbn | 9781450342193 | |
dc.identifier.issn | 0362-1340 | |
dc.identifier.other | PURE: 243730122 | |
dc.identifier.other | PURE UUID: 46c4d573-41bb-4667-9acc-256ed404c8ee | |
dc.identifier.other | Scopus: 85046591474 | |
dc.identifier.other | ORCID: /0000-0002-9734-367X/work/58054937 | |
dc.identifier.other | WOS: 000393580700025 | |
dc.identifier.uri | https://hdl.handle.net/10023/9522 | |
dc.description.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. | |
dc.format.extent | 14 | |
dc.language.iso | eng | |
dc.publisher | ACM | |
dc.relation.ispartof | Proceedings of the 21st ACM SIGPLAN International Conference on Functional Programming (ICFP 2016) | en |
dc.relation.ispartofseries | ACM SIGPLAN Notices | en |
dc.rights | Copyright © 2016, the Author(s). This work is made available online in accordance with the publisher’s policies. This is the author created, accepted version manuscript following peer review and may differ slightly from the final published version. The final published version of this work is available at https://doi.org/10.1145/2951913 | en |
dc.subject | Metaprogramming | en |
dc.subject | Dependent types | en |
dc.subject | Elaboration | en |
dc.subject | QA75 Electronic computers. Computer science | en |
dc.subject | QA76 Computer software | en |
dc.subject | NDAS | en |
dc.subject | BDC | en |
dc.subject | R2C | en |
dc.subject | ~DC~ | en |
dc.subject.lcc | QA75 | en |
dc.subject.lcc | QA76 | en |
dc.title | Elaborator reflection : extending Idris in Idris | en |
dc.type | Conference item | en |
dc.contributor.sponsor | EPSRC | en |
dc.description.version | Postprint | en |
dc.contributor.institution | University of St Andrews. School of Computer Science | en |
dc.identifier.doi | https://doi.org/10.1145/2951913.2951932 | |
dc.date.embargoedUntil | 2016-09-18 | |
dc.identifier.grantnumber | EP/N024222/1 | en |
This item appears in the following Collection(s)
Items in the St Andrews Research Repository are protected by copyright, with all rights reserved, unless otherwise indicated.