Program Verification Under Weak Memory Consistency Using Separation Logic

被引:6
|
作者
Vafeiadis, Viktor [1 ]
机构
[1] SWS, MPI, Saarbrucken, Germany
来源
关键词
D O I
10.1007/978-3-319-63387-9_2
中图分类号
TP301 [理论、方法];
学科分类号
081202 ;
摘要
The semantics of concurrent programs is now defined by a weak memory model, determined either by the programming language (e.g., in the case of C/C++11 or Java) or by the hardware architecture (e.g., for assembly and legacy C code). Since most work in concurrent software verification has been developed prior to weak memory consistency, it is natural to ask how these models affect formal reasoning about concurrent programs. In this overview paper, we show that verification is indeed affected: for example, the standard Owicki-Gries method is unsound under weak memory. Further, based on concurrent separation logic, we develop a number of sound program logics for fragments of the C/C++11 memory model. We show that these logics are useful not only for verifying concurrent programs, but also for explaining the weak memory constructs of C/C++.
引用
收藏
页码:30 / 46
页数:17
相关论文
共 50 条
  • [41] Verification of Concurrent Programs on Weak Memory Models
    Travkin, Oleg
    Wehrheim, Heike
    [J]. THEORETICAL ASPECTS OF COMPUTING - ICTAC 2016, 2016, 9965 : 3 - 24
  • [42] Verification of consistency between concurrent program designs and their requirements
    Chechik, M
    Gannon, J
    [J]. COMPASS '96 - PROCEEDINGS OF THE ELEVENTH ANNUAL CONFERENCE ON COMPUTER ASSURANCE: SYSTEMS INTEGRITY, SOFTWARE SAFETY, PROCESS SECURITY, 1996, : 103 - 116
  • [43] Fractal Consistency: Architecting the Memory System to Facilitate Verification
    Zhang, Meng
    Lebeck, Alvin R.
    Sorin, Daniel J.
    [J]. IEEE COMPUTER ARCHITECTURE LETTERS, 2010, 9 (02) : 61 - 64
  • [44] Verification methods for weaker shared memory consistency models
    Ghughal, RP
    Gopalakrishnan, GC
    [J]. PARALLEL AND DISTRIBUTED PROCESSING, PROCEEDINGS, 2000, 1800 : 985 - 992
  • [45] Fast and generalized polynomial time memory consistency verification
    Roy, Amitabha
    Zeisset, Stephan
    Fleckenstein, Charles J.
    Huang, John C.
    [J]. COMPUTER AIDED VERIFICATION, PROCEEDINGS, 2006, 4144 : 503 - 516
  • [46] Logic plus control: On program construction and verification
    Drabent, Wlodzimierz
    [J]. THEORY AND PRACTICE OF LOGIC PROGRAMMING, 2018, 18 (01) : 1 - 29
  • [47] External Behavior of a Logic Program and Verification of Refactoring
    Fandinno, Jorge
    Hansen, Zachary
    Lierler, Yuliya
    Lifschitz, Vladimir
    Temple, Nathan
    [J]. THEORY AND PRACTICE OF LOGIC PROGRAMMING, 2023, 23 (04) : 933 - 947
  • [48] SLING: Using Dynamic Analysis to Infer Program Invariants in Separation Logic
    Le, Ton Chanh
    Zheng, Guolong
    Nguyen, ThanhVu
    [J]. PROCEEDINGS OF THE 40TH ACM SIGPLAN CONFERENCE ON PROGRAMMING LANGUAGE DESIGN AND IMPLEMENTATION (PLDI '19), 2019, : 788 - 801
  • [49] BLOCK BOOTSTRAP CONSISTENCY UNDER WEAK ASSUMPTIONS
    Calhoun, Gray
    [J]. ECONOMETRIC THEORY, 2018, 34 (06) : 1383 - 1406
  • [50] An Intuitionistic Epistemic Logic for Sequential Consistency on Shared Memory
    Hirai, Yoichi
    [J]. LOGIC FOR PROGRAMMING, ARTIFICIAL INTELLIGENCE, AND REASONING (LPAR-16), 2010, 6355 : 272 - 289