Affiliation:
1. INRIA Paris-Rocquencourt, Le Chesnay, France
2. Texas A&M University, College Station, TX, USA
Abstract
Object layout - the concrete in-memory representation of objects - raises many delicate issues in the case of the C++ language, owing in particular to multiple inheritance, C compatibility and separate compilation. This paper formalizes a family of C++ object layout schemes and mechanically proves their correctness against the operational semantics for multiple inheritance of Wasserrab et al. This formalization is flexible enough to account for space-saving techniques such as empty base class optimization and tail-padding optimization. As an application, we obtain the first formal correctness proofs for realistic, optimized object layout algorithms, including one based on the popular "common vendor" Itanium C++ application binary interface. This work provides semantic foundations to discover and justify new layout optimizations; it is also a first step towards the verification of a C++ compiler front-end.
Publisher
Association for Computing Machinery (ACM)
Subject
Computer Graphics and Computer-Aided Design,Software
Reference19 articles.
1. Mechanized Semantics for the Clight Subset of the C Language
2. A typed intermediate language for compiling multiple inheritance
3. CodeSourcery Compaq EDG HP IBM Intel Red Hat and SGI. Itanium C++ ABI 2001. URL http://www.codesourcery.com/public/cxx-abi. CodeSourcery Compaq EDG HP IBM Intel Red Hat and SGI. Itanium C++ ABI 2001. URL http://www.codesourcery.com/public/cxx-abi.
Cited by
5 articles.
订阅此论文施引文献
订阅此论文施引文献,注册后可以免费订阅5篇论文的施引文献,订阅后可以查看论文全部施引文献