Technical reports
CHERI C semantics as an extension of the ISO C17 standard
Vadim Zaliva, Kayvan Memarian, Ricardo Almeida, Jessica Clarke, Brooks Davis, Alex Richardson, David Chisnall, Brian Campbell, Ian Stark, Robert N. M. Watson, Peter Sewell
October 2023, 11 pages
This work was supported by the UK Industrial Strategy Challenge Fund (ISCF) under the Digital Security by Design (DSbD) Programme, to deliver a DSbDtech enabled digital platform (grant 105694).
This project has received funding from the European Research Council (ERC) under the European Union’s Horizon 2020 research and innovation programme (grant agreement No 789108, ERC AdG ELVER).
Distribution Statement A: Approved for public release; distribution is unlimited. This work was supported by the Defense Advanced Research Projects Agency (DARPA) and the Air Force Research Laboratory (AFRL), under contracts HR0011-22-C-0110 (“ETC”) and HR0011-23-C-0031 (“MTSS”). The views, opinions, and/or findings contained in this report are those of the authors and should not be interpreted as representing the official views or policies of the Department of Defense or the U.S. Government.
DOI | https://doi.org/10.48456/tr-988 |
Abstract
This document provides a specification for CHERI C, adhering to the style, conventions, and terminology found in the ISO C17 standard. Alongside the ISO/IEC 9899:2018 standard text and the “A Provenance-aware Memory Object Model for C” draft specification, it offers a comprehensive specification of the CHERI C language.
Full text
PDF (0.3 MB)
BibTeX record
@TechReport{UCAM-CL-TR-988, author = {Zaliva, Vadim and Memarian, Kayvan and Almeida, Ricardo and Clarke, Jessica and Davis, Brooks and Richardson, Alex and Chisnall, David and Campbell, Brian and Stark, Ian and Watson, Robert N. M. and Sewell, Peter}, title = {{CHERI C semantics as an extension of the ISO C17 standard}}, year = 2023, month = oct, url = {https://www.cl.cam.ac.uk/techreports/UCAM-CL-TR-988.pdf}, institution = {University of Cambridge, Computer Laboratory}, doi = {10.48456/tr-988}, number = {UCAM-CL-TR-988} }