Verifying C11 programs operationally
- Submitting institution
-
The University of Surrey
- Unit of assessment
- 11 - Computer Science and Informatics
- Output identifier
- 9025839_3
- Type
- E - Conference contribution
- DOI
-
10.1145/3293883.3295702
- Title of conference / published proceedings
- Proceedings of the 24th Symposium on Principles and Practice of Parallel Programming
- First page
- 355
- Volume
- -
- Issue
- -
- ISSN
- -
- Open access status
- -
- Month of publication
- -
- Year of publication
- 2019
- URL
-
-
- Supplementary information
-
-
- Request cross-referral to
- -
- Output has been delayed by COVID-19
- No
- COVID-19 affected output statement
- -
- Forensic science
- No
- Criminology
- No
- Interdisciplinary
- No
- Number of additional authors
-
-
- Research group(s)
-
-
- Citation count
- 3
- Proposed double-weighted
- No
- Reserve for an output with double weighting
- No
- Additional information
- The C11 memory model (as described in the 2011 ISO standard for C/C++) is normally formalised using declarative semantics, which unfortunately precludes deductive verification. This paper overcomes this gap by developing a novel operational semantics for the release-acquire-relaxed fragment of C11. Our work forms the basis for Hoare-style calculi, Owicki-Gries reasoning, program verification tools developed using Isabelle/HOL, and mechanised verification of several complex examples, all of which have appeared in more recent publications. A key outcome of our work is a methodology that allows one to reuse traditional verification techniques in the setting of weak memory
- Author contribution statement
- -
- Non-English
- No
- English abstract
- -