Show simple item record

Files in this item

Thumbnail

Item metadata

dc.contributor.authorChristiansen, David
dc.contributor.authorBrady, Edwin Charles
dc.date.accessioned2016-09-18T23:35:04Z
dc.date.available2016-09-18T23:35:04Z
dc.date.issued2016-09-04
dc.identifier.citationChristiansen , 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.2951932en
dc.identifier.citationconferenceen
dc.identifier.isbn9781450342193
dc.identifier.issn0362-1340
dc.identifier.otherPURE: 243730122
dc.identifier.otherPURE UUID: 46c4d573-41bb-4667-9acc-256ed404c8ee
dc.identifier.otherScopus: 85046591474
dc.identifier.otherORCID: /0000-0002-9734-367X/work/58054937
dc.identifier.otherWOS: 000393580700025
dc.identifier.urihttps://hdl.handle.net/10023/9522
dc.description.abstractMany 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.extent14
dc.language.isoeng
dc.publisherACM
dc.relation.ispartofProceedings of the 21st ACM SIGPLAN International Conference on Functional Programming (ICFP 2016)en
dc.relation.ispartofseriesACM SIGPLAN Noticesen
dc.rightsCopyright © 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/2951913en
dc.subjectMetaprogrammingen
dc.subjectDependent typesen
dc.subjectElaborationen
dc.subjectQA75 Electronic computers. Computer scienceen
dc.subjectQA76 Computer softwareen
dc.subjectNDASen
dc.subjectBDCen
dc.subjectR2Cen
dc.subject~DC~en
dc.subject.lccQA75en
dc.subject.lccQA76en
dc.titleElaborator reflection : extending Idris in Idrisen
dc.typeConference itemen
dc.contributor.sponsorEPSRCen
dc.description.versionPostprinten
dc.contributor.institutionUniversity of St Andrews. School of Computer Scienceen
dc.identifier.doihttps://doi.org/10.1145/2951913.2951932
dc.date.embargoedUntil2016-09-18
dc.identifier.grantnumberEP/N024222/1en


This item appears in the following Collection(s)

Show simple item record