当前位置: X-MOL 学术J. Autom. Reason. › 论文详情
Our official English website, www.x-mol.net, welcomes your feedback! (Note: you will need to create a separate account there.)
A Formal C Memory Model for Separation Logic
Journal of Automated Reasoning ( IF 0.9 ) Pub Date : 2016-05-10 , DOI: 10.1007/s10817-016-9369-1
Robbert Krebbers 1, 2
Affiliation  

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, at 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.

中文翻译:

用于分离逻辑的正式 C 内存模型

命令式编程语言的形式语义的核心是描述对内存的操作行为的内存模型。定义与 C11 标准中对 C 的描述相匹配的内存模型具有挑战性,因为 C 允许高级(通过类型表达式)和低级(通过位操作)内存访问。C11 标准限制了这两个级别之间的交互,以使更有效的编译器优化成为可能,但代价是使内存模型变得复杂。我们描述了包含这些限制的 C11 标准(非并发部分)的正式内存模型,同时描述了低级内存操作。这个正式的内存模型包括一个丰富的权限模型,使其可用于分离逻辑,并支持有关程序转换的推理。使用 Coq 证明助手已经完全形式化了内存模型和它的基本属性。
更新日期:2016-05-10
down
wechat
bug