Affiliation:
1. INRIA Paris-Rocquencourt, Le Chesnay, France
2. Texas A&M University, College Station, TX, USA
Abstract
We present a formal operational semantics and its Coq mechanization for the C++ object model, featuring object construction and destruction, shared and repeated multiple inheritance, and virtual function call dispatch. These are key C++ language features for high-level system programming, in particular for predictable and reliable resource management. This paper is the first to present a formal mechanized account of the metatheory of construction and destruction in C++, and applications to popular programming techniques such as "resource acquisition is initialization". We also report on irregularities and apparent contradictions in the ISO C++03 and C++11 standards.
Publisher
Association for Computing Machinery (ACM)
Subject
Computer Graphics and Computer-Aided Design,Software
Reference16 articles.
1. The Coq proof assistant 1999--2012. URL http://coq.inria.fr. The Coq proof assistant 1999--2012. URL http://coq.inria.fr.
2. Establishing object invariants with delayed types
3. Lecture Notes in Computer Science;Hubert L.,2010
Cited by
6 articles.
订阅此论文施引文献
订阅此论文施引文献,注册后可以免费订阅5篇论文的施引文献,订阅后可以查看论文全部施引文献
1. Verifying C++ Dynamic Binding;Proceedings of the 25th ACM International Workshop on Formal Techniques for Java-like Programs;2023-07-18
2. Verification of the ROS NavFn planner using executable specification languages;Journal of Logical and Algebraic Methods in Programming;2023-04
3. SafeDrop: Detecting Memory Deallocation Bugs of Rust Programs via Static Data-Flow Analysis;ACM Transactions on Software Engineering and Methodology;2022-06-21
4. Memory-Safety Challenge Considered Solved? An In-Depth Study with All Rust CVEs;ACM Transactions on Software Engineering and Methodology;2022-01-31
5. Rethink Scalable M:N Threading on Modern Operating Systems;Journal of Computers;2016-05