Back to Search Start Over

The End of History? Using a Proof Assistant to Replace Language Design with Library Design

Authors :
Adam Chlipala and Benjamin Delaware and Samuel Duchovni and Jason Gross and Clément Pit-Claudel and Sorawit Suriyakarn and Peng Wang and Katherine Ye
Chlipala, Adam
Delaware, Benjamin
Duchovni, Samuel
Gross, Jason
Pit-Claudel, Clément
Suriyakarn, Sorawit
Wang, Peng
Ye, Katherine
Adam Chlipala and Benjamin Delaware and Samuel Duchovni and Jason Gross and Clément Pit-Claudel and Sorawit Suriyakarn and Peng Wang and Katherine Ye
Chlipala, Adam
Delaware, Benjamin
Duchovni, Samuel
Gross, Jason
Pit-Claudel, Clément
Suriyakarn, Sorawit
Wang, Peng
Ye, Katherine
Publication Year :
2017

Abstract

Functionality of software systems has exploded in part because of advances in programming-language support for packaging reusable functionality as libraries. Developers benefit from the uniformity that comes of exposing many interfaces in the same language, as opposed to stringing together hodgepodges of command-line tools. Domain-specific languages may be viewed as an evolution of the power of reusable interfaces, when those interfaces become so flexible as to deserve to be called programming languages. However, common approaches to domain-specific languages give up many of the hard-won advantages of library-building in a rich common language, and even the traditional approach poses significant challenges in learning new APIs. We suggest that instead of continuing to develop new domain-specific languages, our community should embrace library-based ecosystems within very expressive languages that mix programming and theorem proving. Our prototype framework Fiat, a library for the Coq proof assistant, turns languages into easily comprehensible libraries via the key idea of modularizing functionality and performance away from each other, the former via macros that desugar into higher-order logic and the latter via optimization scripts that derive efficient code from logical programs.

Details

Database :
OAIster
Notes :
application/pdf, English
Publication Type :
Electronic Resource
Accession number :
edsoai.on1358722588
Document Type :
Electronic Resource
Full Text :
https://doi.org/10.4230.LIPIcs.SNAPL.2017.3