DimSum: A Decentralized Approach to Multi-language Semantics and Verification

被引:7
|
作者
Sammler, Michael [1 ]
Spies, Simon [1 ]
Song, Youngju [1 ]
D'Osualdo, Emanuele [1 ]
Krebbers, Robbert [2 ]
Garg, Deepak [1 ]
Dreyer, Derek [1 ]
机构
[1] MPI SWS, Saarland Informat Campus, Saarbrucken, Germany
[2] Radboud Univ Nijmegen, Nijmegen, Netherlands
来源
PROCEEDINGS OF THE ACM ON PROGRAMMING LANGUAGES-PACMPL | 2023年 / 7卷 / POPL期
基金
荷兰研究理事会; 欧洲研究理事会;
关键词
multi-language semantics; verification; compilers; non-determinism; separation logic; Iris; Coq; ABSTRACT TRACE SEMANTICS;
D O I
10.1145/3571220
中图分类号
TP31 [计算机软件];
学科分类号
081202 ; 0835 ;
摘要
Priorwork 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.
引用
收藏
页数:31
相关论文
共 50 条
  • [41] Code Smells for Multi-language Systems
    Abidi, Mouna
    Grichi, Manel
    Khomh, Foutse
    Gueheneuc, Yann-Gael
    PROCEEDINGS OF THE 24TH EUROPEAN CONFERENCE ON PATTERN LANGUAGES OF PROGRAMS (EUROPLOP 2019), 2019,
  • [42] Compiling for Multi-language Task Migration
    Feeley, Marc
    ACM SIGPLAN NOTICES, 2016, 51 (02) : 63 - 77
  • [43] A programmable multi-language generator for codesign
    Calvez, JP
    Heller, D
    Muller, F
    Pasquier, O
    DESIGN, AUTOMATION AND TEST IN EUROPE, PROCEEDINGS, 1998, : 927 - 928
  • [44] SecPAL: Design and semantics of a decentralized authorization language
    Becker, Moritz Y.
    Fournet, Cedric
    Gordon, Andrew D.
    JOURNAL OF COMPUTER SECURITY, 2010, 18 (04) : 619 - 665
  • [45] HamleDT: Harmonized multi-language dependency treebank
    Daniel Zeman
    Ondřej Dušek
    David Mareček
    Martin Popel
    Loganathan Ramasamy
    Jan Štěpánek
    Zdeněk Žabokrtský
    Jan Hajič
    Language Resources and Evaluation, 2014, 48 : 601 - 637
  • [46] EXPERIMENT IN INTERNATIONAL LIVINGS MULTI-LANGUAGE PROGRAM
    FANTINI, AE
    FOREIGN LANGUAGE ANNALS, 1968, 2 (01) : 12 - 18
  • [47] Multi-language Design Smells: A Backstage Perspective
    Abidi, Mouna
    Openja, Moses
    Khomh, Foutse
    2020 IEEE/ACM 17TH INTERNATIONAL CONFERENCE ON MINING SOFTWARE REPOSITORIES, MSR, 2020, : 615 - 618
  • [48] The design space of multi-language development environments
    Pfeiffer, Rolf-Helge
    Wasowski, Andrzej
    SOFTWARE AND SYSTEMS MODELING, 2015, 14 (01): : 383 - 411
  • [49] A New Multi-language Encryption Technique for MANET
    Choudhury, Prasenjit
    Gaddam, Rajasekhar
    Parisi, Rajesh Babu
    Dasari, Manohar Babu
    Vuppala, Satyanarayana
    INFORMATION AND COMMUNICATION TECHNOLOGIES, 2010, 101 : 22 - +
  • [50] Lightweight Multi-language Bindings for Apache Spark
    Salucci, Luca
    Bonetta, Daniele
    Binder, Walter
    EURO-PAR 2016: PARALLEL PROCESSING, 2016, 9833 : 281 - 292