Separation logic is the twenty-first-century variant of Hoare logic that permits verification of pointer-manipulating programs. This book covers practical and theoretical aspects of separation logic at a level accessible to beginning graduate students interested in software verification. On the practical side it offers an introduction to verification in Hoare and separation logics, simple case studies for toy languages, and the Verifiable C program logic for the C programming language. On the theoretical side it presents separation algebras as models of separation logics; step-indexed models of higher-order logical features for higher-order programs; indirection theory for constructing step-indexed separation algebras; tree-shares as models for shared ownership; and the semantic construction (and soundness proof) of Verifiable C. In addition, the book covers several aspects of the CompCert verified C compiler, and its connection to foundationally verified software analysis tools. All constructions and proofs are made rigorous and accessible in the Coq developments of the open-source Verified Software Toolchain.
Reinhard Wilhelm's career in Computer Science spans more than a third of a century. This Festschrift volume, published to honor him on his 60th Birthday on June 10, 2006, includes 15 refereed papers...
A handbook to the Coq software for writing and checking mathematical proofs, with a practical engineering focus.A handbook to the Coq software for writing and checking mathematical proofs, with a...
Advances and problems in the field of compiler compilers are considered in this volume, which presents the proceedings of the third in a series of biannual workshops on compiler compilers. Selected...
Advances and problems in the field of compiler compilers are the subject of the 2nd CCHSC Workshop which took place in Berlin, GDR, in October 1988. The 18 papers which were selected for the workshop...