Intrinsically-typed definitional interpreters à la carte

C.R. van der Rest, C.B. Poulsen, A.J. Rouvoet, Eelco Visser, P.D. Mosses

Research output: Contribution to journalArticleScientificpeer-review

2 Downloads (Pure)


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.
Original languageEnglish
Article number192
Pages (from-to)1903–1932
JournalProceedings of the ACM on Programming Languages
Issue numberOOPSLA2
Publication statusPublished - 2022


Dive into the research topics of 'Intrinsically-typed definitional interpreters à la carte'. Together they form a unique fingerprint.

Cite this