Repository logo
Log in(current)
Repository logoMIT Open ScholarshipDSpace@MIT
  1. Home
  2. MIT Open Access Articles
  3. MIT Open Access Articles
  4. Prototyping a functional language using higher-order logic programming: a functional pearl on learning the ways of λProlog/Makam

Prototyping a functional language using higher-order logic programming: a functional pearl on learning the ways of λProlog/Makam

Thumbnail Image
Download
Name

icfp18main-p88-p.pdf

Description
Published version
Size

412.38 KB

Format

Unknown

Checksum (MD5)

f6ecbb6b3dec0d6d186734c1628ff77f

sword-2019-05-13T17:52:45.original.xml (130 B)
Original SWORD entry document
Author(s)
Stampoulis, Antonis
•
Chlipala, Adam
Date Issued
2018
Journal
Proceedings of the ACM on Programming Languages
Publisher
Association for Computing Machinery (ACM)
Version
Final published version
Abstract

We demonstrate how the framework of higher-order logic programming , 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.
MIT Department
Massachusetts Institute of Technology. Computer Science and Artificial Intelligence Laboratory
Massachusetts Institute of Technology. Department of Electrical Engineering and Computer Science
Terms of Use
Creative Commons Attribution 4.0 International license
https://creativecommons.org/licenses/by/4.0/
Persistent DSpace Link
https://hdl.handle.net/1721.1/135107.2
DOI of Published Version
https://doi.org/10.1145/3236788
Repository logo
PrivacyPermissionsAccessibilityContact us
Repository logo
Notify us about copyright concerns.