Affiliation:
1. MPI-SWS, Germany
2. Radboud University Nijmegen, Netherlands
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.
Funder
Dutch Research Council
European Research Council
Publisher
Association for Computing Machinery (ACM)
Subject
Safety, Risk, Reliability and Quality,Software
Reference56 articles.
1. On Protection by Layout Randomization
2. An equivalence-preserving CPS translation via multi-language semantics
3. Alternating refinement relations
4. Biorthogonality, step-indexing and compiler correctness
5. Nick Benton and Chung-Kil Hur. 2010. Realizability and compositional compiler correctness for a polymorphic language. Microsoft Research. https://sf.snu.ac.kr/publications/cccmsrtr.pdf Nick Benton and Chung-Kil Hur. 2010. Realizability and compositional compiler correctness for a polymorphic language. Microsoft Research. https://sf.snu.ac.kr/publications/cccmsrtr.pdf
Cited by
7 articles.
订阅此论文施引文献
订阅此论文施引文献,注册后可以免费订阅5篇论文的施引文献,订阅后可以查看论文全部施引文献
1. Refinement Composition Logic;Proceedings of the ACM on Programming Languages;2024-08-15
2. Securing Verified IO Programs Against Unverified Code in F*;Proceedings of the ACM on Programming Languages;2024-01-05
3. Fully Composable and Adequate Verified Compilation with Direct Refinements between Open Modules;Proceedings of the ACM on Programming Languages;2024-01-05
4. An Iris Instance for Verifying CompCert C Programs;Proceedings of the ACM on Programming Languages;2024-01-05
5. Stuttering for Free;Proceedings of the ACM on Programming Languages;2023-10-16