Show simple item record

dc.contributor.authorStampoulis, Antonis
dc.contributor.authorChlipala, Adam
dc.date.accessioned2022-07-12T15:38:35Z
dc.date.available2021-10-27T20:10:47Z
dc.date.available2022-07-12T15:38:35Z
dc.date.issued2018
dc.identifier.urihttps://hdl.handle.net/1721.1/135107.2
dc.description.abstract<jats:p> We demonstrate how the framework of <jats:italic>higher-order logic programming</jats:italic> , as exemplified in the λProlog language design, is a prime vehicle for rapid prototyping of implementations for programming languages with sophisticated type systems. We present the literate development of a type checker for a language with a number of complicated features, culminating in a standard ML-style core with algebraic datatypes and type generalization, extended with staging constructs that are generic over a separately defined language of terms. We add each new feature in sequence, with little to no changes to existing code. Scaling the higher-order logic programming approach to this setting required us to develop approaches to challenges like complex variable binding patterns in object languages and performing generic structural traversals of code, making use of novel constructions in the setting of λProlog, such as GADTs and generic programming. For our development, we make use of Makam, a new implementation of λProlog, which we introduce in tutorial style as part of our (quasi-)literate development. </jats:p>en_US
dc.language.isoen
dc.publisherAssociation for Computing Machinery (ACM)en_US
dc.relation.isversionof10.1145/3236788en_US
dc.rightsCreative Commons Attribution 4.0 International licenseen_US
dc.rights.urihttps://creativecommons.org/licenses/by/4.0/en_US
dc.sourceACMen_US
dc.titlePrototyping a functional language using higher-order logic programming: a functional pearl on learning the ways of λProlog/Makamen_US
dc.typeArticleen_US
dc.contributor.departmentMassachusetts Institute of Technology. Computer Science and Artificial Intelligence Laboratoryen_US
dc.contributor.departmentMassachusetts Institute of Technology. Department of Electrical Engineering and Computer Scienceen_US
dc.relation.journalProceedings of the ACM on Programming Languagesen_US
dc.eprint.versionFinal published versionen_US
dc.type.urihttp://purl.org/eprint/type/ConferencePaperen_US
eprint.statushttp://purl.org/eprint/status/NonPeerRevieweden_US
dc.date.updated2019-05-13T17:52:45Z
dspace.orderedauthorsStampoulis, A; Chlipala, Aen_US
dspace.date.submission2019-05-13T17:52:46Z
mit.journal.volume2en_US
mit.journal.issueICFPen_US
mit.metadata.statusPublication Information Neededen_US


Files in this item

Thumbnail

This item appears in the following Collection(s)

Show simple item record

VersionItemDateSummary

*Selected version