DimSum: A decentralized approach to multi-language semantics and verification
Sammler MJ, Spies S, Song Y, D’Osualdo E, Krebbers R, Garg D, Dreyer D. 2023. DimSum: A decentralized approach to multi-language semantics and verification. Proceedings of the ACM on Programming Languages. 7(POPL), 775–805.
Download (ext.)
https://doi.org/10.1145/3571220
[Published Version]
DOI
Journal Article
| Published
| English
Scopus indexed
Author
Sammler, Michael JoachimISTA;
Spies, Simon;
Song, Youngju;
D'Osualdo, Emanuele;
Krebbers, Robbert;
Garg, Deepak;
Dreyer, Derek
Abstract
Prior work on multi-language program verification has achieved impressive results, including the compositional verification of complex compilers. But the existing approaches to this problem impose a variety of restrictions on the overall structure of multi-language programs (e.g. fixing the source language, fixing the set of involved languages, fixing the memory model, or fixing the semantics of interoperation). In this paper, we explore the problem of how to avoid such global restrictions.
Concretely, we present DimSum: a new, decentralized approach to multi-language semantics and verification, which we have implemented in the Coq proof assistant. Decentralization means that we can define and reason about languages independently from each other (as independent modules communicating via events), but also combine and translate between them when necessary (via a library of combinators).
We apply DimSum to a high-level imperative language Rec (with an abstract memory model and function calls), a low-level assembly language Asm (with a concrete memory model, arbitrary jumps, and syscalls), and a mathematical specification language Spec. We evaluate DimSum on two case studies: an Asm library extending Rec with support for pointer comparison, and a coroutine library for Rec written in Asm. In both cases, we show how DimSum allows the Asm libraries to be abstracted to Rec-level specifications, despite the behavior of the Asm libraries not being syntactically expressible in Rec itself. We also verify an optimizing multi-pass compiler from Rec to Asm, showing that it is compatible with these Asm libraries.
Publishing Year
Date Published
2023-01-11
Journal Title
Proceedings of the ACM on Programming Languages
Publisher
Association for Computing Machinery
Volume
7
Issue
POPL
Page
775-805
ISSN
IST-REx-ID
Cite this
Sammler MJ, Spies S, Song Y, et al. DimSum: A decentralized approach to multi-language semantics and verification. Proceedings of the ACM on Programming Languages. 2023;7(POPL):775-805. doi:10.1145/3571220
Sammler, M. J., Spies, S., Song, Y., D’Osualdo, E., Krebbers, R., Garg, D., & Dreyer, D. (2023). DimSum: A decentralized approach to multi-language semantics and verification. Proceedings of the ACM on Programming Languages. Association for Computing Machinery. https://doi.org/10.1145/3571220
Sammler, Michael Joachim, Simon Spies, Youngju Song, Emanuele D’Osualdo, Robbert Krebbers, Deepak Garg, and Derek Dreyer. “DimSum: A Decentralized Approach to Multi-Language Semantics and Verification.” Proceedings of the ACM on Programming Languages. Association for Computing Machinery, 2023. https://doi.org/10.1145/3571220.
M. J. Sammler et al., “DimSum: A decentralized approach to multi-language semantics and verification,” Proceedings of the ACM on Programming Languages, vol. 7, no. POPL. Association for Computing Machinery, pp. 775–805, 2023.
Sammler MJ, Spies S, Song Y, D’Osualdo E, Krebbers R, Garg D, Dreyer D. 2023. DimSum: A decentralized approach to multi-language semantics and verification. Proceedings of the ACM on Programming Languages. 7(POPL), 775–805.
Sammler, Michael Joachim, et al. “DimSum: A Decentralized Approach to Multi-Language Semantics and Verification.” Proceedings of the ACM on Programming Languages, vol. 7, no. POPL, Association for Computing Machinery, 2023, pp. 775–805, doi:10.1145/3571220.
All files available under the following license(s):
Copyright Statement:
This Item is protected by copyright and/or related rights. [...]
Link(s) to Main File(s)
Access Level
Open Access