Intrinsically-typed definitional interpreters à la carte

Journal Article (2022)
Author(s)

C.R. van der Rest (TU Delft - Programming Languages)

Casper Bach Bach (TU Delft - Programming Languages)

A.J. Rouvoet (TU Delft - Programming Languages)

E Visser (TU Delft - Programming Languages)

P.D. Mosses (TU Delft - Programming Languages)

Research Group
Programming Languages
Copyright
© 2022 C.R. van der Rest, C.B. Poulsen, A.J. Rouvoet, Eelco Visser, P.D. Mosses
DOI related publication
https://doi.org/10.1145/3563355
More Info
expand_more
Publication Year
2022
Language
English
Copyright
© 2022 C.R. van der Rest, C.B. Poulsen, A.J. Rouvoet, Eelco Visser, P.D. Mosses
Research Group
Programming Languages
Issue number
OOPSLA2
Volume number
6
Pages (from-to)
1903–1932
Reuse Rights

Other than for strictly personal use, it is not permitted to download, forward or distribute the text or part of it, without the consent of the author(s) and/or copyright holder(s), unless the work is under an open content license such as Creative Commons.

Abstract

Specifying and mechanically verifying type safe programming languages requires significant effort. This effort can in theory be reduced by defining and reusing pre-verified, modular components. In practice, however, existing approaches to modular mechanical verification require many times as much specification code as plain, monolithic definitions. This makes it hard to develop new reusable components, and makes existing component specifications hard to grasp. We present an alternative approach based on intrinsically-typed interpreters, which reduces the size and complexity of modular specifications as compared to existing approaches. Furthermore, we introduce a new abstraction for safe-by-construction specification and composition of pre-verified type safe language components: language fragments. Language fragments are about as concise and easy to develop as plain, monolithic intrinsically-typed interpreters, but require about 10 times less code than previous approaches to modular mechanical verification of type safety.