Sound Runtime Assertion Checking for Memory Properties via Program Transformation

被引:0
作者
Ly, Dara [1 ]
Kosmatov, Nikolai [1 ,2 ]
Loulergue, Frederic [3 ]
Signoles, Julien [1 ]
机构
[1] Univ Paris Saclay, CEA, List, 2 Blvd Thomas Gobert, F-91120 Palaiseau, France
[2] Thales Res & Technol, 1 Ave Augustin Fresnel, F-91120 Palaiseau, France
[3] Univ Orleans, INSA Ctr Val Loire, LIFO EA 4022, 6 Rue Leonard De Vinci, F-45067 Orleans, France
关键词
Runtime assertion checking; memory-related properties; memory model; soundness proof; VERIFICATION; SHADOW;
D O I
10.1145/3605951
中图分类号
TP31 [计算机软件];
学科分类号
081202 ; 0835 ;
摘要
Runtime Assertion Checking (RAC) for expressive specification languages is a non-trivial verification task that becomes even more complex for memory-related properties of imperative languages with dynamic memory allocation. It is important to ensure the soundness of RAC verdicts, in particular when RAC reports the absence of failures for execution traces. This article presents a formalization of a program transformation technique for RAC of memory properties for a representative language with pointers and memory operations, including dynamic allocation and deallocation. The generated program instrumentation relies on an axiomatized observation memory model, which is essential to record and monitor memory-related properties. We prove the soundness of RAC verdicts with regard to the semantics of this language.
引用
收藏
页数:46
相关论文
共 51 条
  • [1] Abadi M., 2005, P 12 ACM C COMP COMM, P340
  • [2] [Anonymous], 1999, ISO/IEC 9899:1999
  • [3] Specification and Verification: The Spec# Experience
    Barnett, Mike
    Faehndrich, Manuel
    Leino, K. Rustan M.
    Mueller, Peter
    Schulte, Wolfram
    Venter, Herman
    [J]. COMMUNICATIONS OF THE ACM, 2011, 54 (06) : 81 - 91
  • [4] The Dogged Pursuit of Bug-Free C Programs: The Frama-C Software Analysis Platform
    Baudin, Patrick
    Bobot, Francois
    Buhler, David
    Correnson, Loic
    Kirchner, Florent
    Kosmatov, Nikolai
    Maroneze, Andre
    Perrelle, Valentin
    Prevosto, Virgile
    Signoles, Julien
    Williams, Nicky
    [J]. COMMUNICATIONS OF THE ACM, 2021, 64 (08) : 56 - 68
  • [5] Baudin Patrick, 2022, ACSL: ANSI/ISO C Specification Language
  • [6] Formalizing an Efficient Runtime Assertion Checker for an Arithmetic Language with Functions and Predicates
    Benjamin, Thibaut
    Signoles, Julien
    [J]. 38TH ANNUAL ACM SYMPOSIUM ON APPLIED COMPUTING, SAC 2023, 2023, : 1673 - 1680
  • [7] Benjamin Thibaut, 2022, JOURNEES FRANCOPHONE
  • [8] Bertot Y., 2004, TEXT THEORET COMP S
  • [9] Ghosts for Lists: A Critical Module of Contiki Verified in Frama-C
    Blanchard, Allan
    Kosmatov, Nikolai
    Loulergue, Frederic
    [J]. NASA FORMAL METHODS, NFM 2018, 2018, 10811 : 37 - 53
  • [10] Mechanized Semantics for the Clight Subset of the C Language
    Blazy, Sandrine
    Leroy, Xavier
    [J]. JOURNAL OF AUTOMATED REASONING, 2009, 43 (03) : 263 - 288