4423 articles – 2353 references  [version française]
HAL: hal-00703441, version 1

See detailed view  BibTeX,EndNote,...
The CompCert Memory Model, Version 2
Xavier Leroy ( ) 1, Andrew W. Appel 2, Sandrine Blazy 3, Gordon Stewart 2
(2012-06)

A memory model is an important component of the formal semantics of imperative programming languages: it specifies the behavior of operations over memory states, such as reads and writes. The formally verified CompCert C compiler uses a sophisticated memory model that is shared between the semantics of its source language (the CompCert subset of C) and intermediate languages. The algebraic properties of this memory model play an important role in the proofs of semantic preservation for the compiler. The initial design of the CompCert memory model is described in an article by Leroy and Blazy (J. Autom. Reasoning 2008). The present research report describes version 2 of this memory model, improving over the main limitations of version 1. The first improvement is to expose the byte-level, in-memory representation of integers and floats, while preserving desirable opaqueness properties of pointer values. The second improvement is the integration of a fine-grained mechanism of permissions (access rights), which supports more aggressive optimizations over read-only data, and paves the way towards shared-memory, data-race-free concurrency in the style of Appel's Verified Software Toolchain project.
1:  GALLIUM (INRIA Rocquencourt)
INRIA
2:  Department of Computer Science
Princeton University
3:  CELTIQUE (INRIA - IRISA)
INRIA – Université de Rennes 1 – École normale supérieure de Cachan - ENS Cachan – CNRS : UMR6074
Computer Science/Programming Languages
Memory models – formal semantics – verified compilation – CompCert
Attached file list to this document: 
PDF
RR-7987.pdf(716.8 KB)