2008
DOI: 10.1007/s10817-008-9099-0
|View full text |Cite
|
Sign up to set email alerts
|

Formal Verification of a C-like Memory Model and Its Uses for Verifying Program Transformations

Abstract: This article presents the formal verification, using the Coq proof assistant, of a memory model for low-level imperative languages such as C and compiler intermediate languages. Beyond giving semantics to pointer-based programs, this model supports reasoning over transformations of such programs. We show how the properties of the memory model are used to prove semantic preservation for three passes of the Compcert verified compiler.

Help me understand this report

Search citation statements

Order By: Relevance

Paper Sections

Select...
1
1
1
1

Citation Types

0
111
0

Year Published

2012
2012
2019
2019

Publication Types

Select...
8
1

Relationship

1
8

Authors

Journals

citations
Cited by 124 publications
(112 citation statements)
references
References 18 publications
0
111
0
Order By: Relevance
“…Abstract Machine The memory-safety abstract machine presents a block-based memory model to the programmer [15], [57], [58]: it operates on values that are either ordinary machine words w or pointers p.…”
Section: Memory Safety Micro-policymentioning
confidence: 99%
“…Abstract Machine The memory-safety abstract machine presents a block-based memory model to the programmer [15], [57], [58]: it operates on values that are either ordinary machine words w or pointers p.…”
Section: Memory Safety Micro-policymentioning
confidence: 99%
“…We adopt a simplified version of the memory model of Leroy and Blazy [13]locations are interpreted as integer values and field accesses as pointer offsets. We introduce to the assertion language a variable h, and the non-interpreted functions load, store, alloc, and free, and the predicate Valid.…”
Section: Logical Validationmentioning
confidence: 99%
“…These models can be used on different levels of abstraction, ranging from low-level representations modeling the whole memory as a single byte array (e. g. Leroy et al [LB08]) up to high-level representations using multiple typed heaps to create separate memories for each data type or even each struct in the model (e. g. Bornat et al [Bor00]). Typed data structure models can handle inter-type aliasing but neither intratype aliasing nor the frame problem.…”
Section: Typed Data Structure Memory Modelsmentioning
confidence: 99%
“…This is an adaption of typed data structure memory models, which are widely used to formalize the memory model of C-like languages [Bor00,LB08]. The main advantage of this approach is its expressiveness and efficiency.…”
Section: Systemc/tlmmentioning
confidence: 99%