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
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
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
Kayvan Memarian,Justus Matthiesen,James Lingard,Kyndylan Nienhuis,David Chisnall,Robert N. M. Watson,Peter Sewell +6 more
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
Patrick Cousot,Radhia Cousot +1 more
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 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.).