pith. sign in

arxiv: 1509.03339 · v1 · pith:RU2B27HAnew · submitted 2015-09-10 · 💻 cs.LO · cs.PL

A Formal C Memory Model for Separation Logic

classification 💻 cs.LO cs.PL
keywords memorymodelformalstandarddescribeslogiclow-levelmake
0
0 comments X
read the original abstract

The core of a formal semantics of an imperative programming language is a memory model that describes the behavior of operations on the memory. Defining a memory model that matches the description of C in the C11 standard is challenging because C allows both high-level (by means of typed expressions) and low-level (by means of bit manipulation) memory accesses. The C11 standard has restricted the interaction between these two levels to make more effective compiler optimizations possible, on the expense of making the memory model complicated. We describe a formal memory model of the (non-concurrent part of the) C11 standard that incorporates these restrictions, and at the same time describes low-level memory operations. This formal memory model includes a rich permission model to make it usable in separation logic and supports reasoning about program transformations. The memory model and essential properties of it have been fully formalized using the Coq proof assistant.

This paper has not been read by Pith yet.

discussion (0)

Sign in with ORCID, Apple, or X to comment. Anyone can read and Pith papers without signing in.