A Compositional Semantics for Verified Separate Compilation and Linking

被引:16
|
作者
Ramananandro, Tahina [1 ]
Shao, Zhong [1 ]
Weng, Shu-Chun [1 ]
Koenig, Jeremie [1 ]
Fu, Yuchen [2 ]
机构
[1] Yale Univ, New Haven, CT 06520 USA
[2] MIT, Cambridge, MA 02139 USA
基金
美国国家科学基金会;
关键词
Compositional Semantics; Vertical Composition; Horizontal Composition; Verified Compilation and Linking;
D O I
10.1145/2676724.2693167
中图分类号
TP301 [理论、方法];
学科分类号
081202 ;
摘要
Recent ground-breaking efforts such as CompCert have made a convincing case that mechanized verification of the compiler correctness for realistic C programs is both viable and practical. Unfortunately, existing verified compilers can only handle whole programs-this severely limits their applicability and prevents the linking of verified C programs with verified external libraries. In this paper, we present a novel compositional semantics for reasoning about open modules and for supporting verified separate compilation and linking. More specifically, we replace external function calls with explicit events in the behavioral semantics. We then develop a verified linking operator that makes lazy substitutions on (potentially reacting) behaviors by replacing each external function call event with a behavior simulating the requested function. Finally, we show how our new semantics can be applied to build a refinement infrastructure that supports both vertical composition and horizontal composition.
引用
收藏
页码:3 / 14
页数:12
相关论文
共 50 条
  • [1] From Mechanized Semantics to Verified Compilation: the Clight Semantics of CompCert
    Blazy, Sandrine
    [J]. FUNDAMENTAL APPROACHES TO SOFTWARE ENGINEERING, FASE 2024, 2024, 14573 : 1 - 21
  • [2] CompCert: A Journey through the Landscape of Mechanized Semantics for Verified Compilation
    Blazy, Sandrine
    [J]. PROCEEDINGS OF THE 12TH ACM SIGPLAN INTERNATIONAL CONFERENCE ON CERTIFIED PROGRAMS AND PROOFS, CPP 2023, 2023, : 1 - 1
  • [3] Mechanized Semantics and Verified Compilation for a Dataflow Synchronous Language with Reset
    Bourke, Timothy
    Brun, Lelio
    Pouzet, Marc
    [J]. PROCEEDINGS OF THE ACM ON PROGRAMMING LANGUAGES-PACMPL, 2020, 4
  • [4] CompCertELF: Verified Separate Compilation of C Programs into ELF Object Files
    Wang, Yuting
    Xu, Xiangzhe
    Wilke, Pierre
    Shao, Zhong
    [J]. PROCEEDINGS OF THE ACM ON PROGRAMMING LANGUAGES-PACMPL, 2020, 4
  • [5] An Abstract Stack Based Approach to Verified Compositional Compilation to Machine Code
    Wang, Yuting
    Wilke, Pierre
    Shao, Zhong
    [J]. PROCEEDINGS OF THE ACM ON PROGRAMMING LANGUAGES-PACMPL, 2019, 3 (POPL):
  • [6] Verified Compilation on a Verified Processor
    Loow, Andreas
    Kumar, Ramana
    Tan, Yong Kiam
    Myreen, Magnus O.
    Norrish, Michael
    Abrahamsson, Oskar
    Fox, Anthony
    [J]. PROCEEDINGS OF THE 40TH ACM SIGPLAN CONFERENCE ON PROGRAMMING LANGUAGE DESIGN AND IMPLEMENTATION (PLDI '19), 2019, : 1041 - 1053
  • [7] Verified Compilation of Quantum Oracles
    Li, Liyi
    Voichick, Finn
    Hietala, Kesha
    Peng, Yuxiang
    Wu, Xiaodi
    Hicks, Michael
    [J]. PROCEEDINGS OF THE ACM ON PROGRAMMING LANGUAGES-PACMPL, 2022, 6 (OOPSLA): : 589 - 615
  • [8] Atomicity Refinement for Verified Compilation
    Jagannathan, Suresh
    Petri, Gustavo
    Vitek, Jan
    Pichardie, David
    Laporte, Vincent
    [J]. ACM SIGPLAN NOTICES, 2014, 49 (06) : 27 - 27
  • [9] Atomicity Refinement for Verified Compilation
    Jagannathan, Suresh
    Laporte, Vincent
    Petri, Gustavo
    Pichardie, David
    Vitek, Jan
    [J]. ACM TRANSACTIONS ON PROGRAMMING LANGUAGES AND SYSTEMS, 2014, 36 (02):
  • [10] SEPARATE COMPILATION IN CHIPSY
    EIDNES, H
    HALLSTEINSEN, SO
    WANVIK, DH
    [J]. PROCEEDINGS OF THE 2ND INTERNATIONAL WORKSHOP ON SOFTWARE CONFIGURATION MANAGEMENT, 1989, 17 : 42 - 45