Sound Runtime Assertion Checking for Memory Properties via Program Transformation

Research output: Contribution to journalArticlepeer-review

Abstract

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.

Original languageEnglish
Article number4
JournalFormal Aspects of Computing
Volume36
Issue number1
DOIs
Publication statusPublished - 20 Mar 2024
Externally publishedYes

Keywords

  • Runtime assertion checking
  • memory model
  • memory-related properties
  • soundness proof

Fingerprint

Dive into the research topics of 'Sound Runtime Assertion Checking for Memory Properties via Program Transformation'. Together they form a unique fingerprint.

Cite this