A mechanized semantics for C++ object construction and destruction, with applications to resource management

Tahina Ramananandro, Gabriel Dos Reis, Xavier Leroy
2012 Proceedings of the 39th annual ACM SIGPLAN-SIGACT symposium on Principles of programming languages - POPL '12  
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
more » ... ar 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.
doi:10.1145/2103656.2103718 dblp:conf/popl/RamananandroRL12 fatcat:42jzmktnavdtbpqgzg2avyjis4