scispace - formally typeset
Open AccessDissertation

The C standard formalized in Coq

TLDR
Memory trees are a middle ground, and therefore suitable to describe both the low-level and high-level aspects of the C memory as discussed by the authors, and are used in the external interface of the memory model and throughout the operational semantics.
Abstract
values hide internal details of the memory such as permissions, padding and object representations. They are therefore used in the external interface of the memory model and throughout the operational semantics. Memory trees, abstract values and bits with permissions can be converted into each other. These conversions are used to define operations internal to the memory model. However, none of these conversions are bijective because different information is materialized in these three data types: Abstract values Memory trees Bits with permissions Permissions X X Padding always E X Variants of union X X Mathematical values Xvalues Memory trees Bits with permissions Permissions X X Padding always E X Variants of union X X Mathematical values X This table indicates that abstract values and sequences of bits are complementary. Memory trees are a middle ground, and therefore suitable to describe both the lowlevel and high-level aspects of the C memory.

read more

Content maybe subject to copyright    Report

Citations
More filters
Journal ArticleDOI

RustBelt: securing the foundations of the Rust programming language

TL;DR: This paper gives the first formal (and machine-checked) safety proof for a language representing a realistic subset of Rust, and is extensible in the sense that, for each new Rust library that uses unsafe features, it can say what verification condition it must satisfy in order to be deemed a safe extension to the language.

The Definition Of Standard Ml Revised

Peter Beike
TL;DR: The the definition of standard ml revised is universally compatible with any devices to read and is available in the digital library an online access to it is set as public so you can get it instantly.
Proceedings ArticleDOI

Interactive proofs in higher-order concurrent separation logic

TL;DR: This paper introduces a so-called proof mode that extends the Coq proof assistant with (spatial and non-spatial) named proof contexts for the object logic, and shows that thanks to these contexts it can implement high-level tactics for introduction and elimination of the connectives of the object Logic, and thereby make reasoning in the embedded logic as seamless as Reasoning in the meta logic of the proof assistant.
Proceedings ArticleDOI

Into the depths of C: elaborating the de facto standards

TL;DR: An in-depth analysis of the design space for the semantics of pointers and memory in C as it is used in practice is described, a step towards clear, consistent, and accepted semantics for the various use-cases of C.
Proceedings ArticleDOI

Higher-order ghost state

TL;DR: This paper proposes higher-order ghost state as a interesting and useful extension to CSL, which is formalized in the framework of Jung et al.'s recently developed Iris logic, and develops a novel algebraic structure called CMRAs ("cameras") which can be thought of as "step-indexed partial commutative monoids".
References
More filters
Proceedings ArticleDOI

Abstract interpretation: a unified lattice model for static analysis of programs by construction or approximation of fixpoints

TL;DR: In this paper, the abstract interpretation of programs is used to describe computations in another universe of abstract objects, so that the results of abstract execution give some information on the actual computations.
Book

The C++ Programming Language

TL;DR: Bjarne Stroustrup makes C even more accessible to those new to the language, while adding advanced information and techniques that even expert C programmers will find invaluable.
Journal Article

An Axiomatic Basis for Computer Programming

Journal ArticleDOI

Guarded commands, nondeterminacy and formal derivation of programs

TL;DR: So-called “guarded commands” are introduced as a building block for alternative and repetitive constructs that allow nondeterministic program components for which at least the activity evoked, but possibly even the final state, is not necessarily uniquely determined by the initial state.
Book

The C Programming Language

TL;DR: The C Programming Language (2nd Ed.) as discussed by the authors is the first authorized digital version of Kernighan and Ritchie's 1988 classic, The C Programming Languages (1st Ed.).
Related Papers (5)