Skip to main content
USENIX
  • Conferences
  • Students
Sign in

connect with us


  •  Twitter
  •  Facebook
  •  LinkedIn
  •  Google+
  •  YouTube

twitter

Tweets by @usenix

usenix conference policies

  • Event Code of Conduct
  • Conference Network Policy
  • Statement on Environmental Responsibility Policy

You are here

Home ยป Sharing Between Translation Units in C++ Program Databases
Tweet

connect with us

Sharing Between Translation Units in C++ Program Databases

Authors: 

Samuel Kendall, Sun Microsystems Labs; Glenn Allinn, CenterLine Software

Abstract: 

A C++ program database represents information about C++ code, typically to enable program browsing or debugging. Such databases can grow very large. The growth is fundamentally due to the translation unit (TU) program structure C++ inherited from C: a naively designed database will consist largely of representations of redundant or unused code from header files. This paper measures the effect of some techniques for shrinking this naively designed database: the elision of unused entities from a TU, and the sharing or linking (generically, the combination) of redundant entities across TUs. We also measure the overhead imposed by the segregation of class types with external linkage from those with internal linkage. We define and measure these techniques for our own database, which was designed with very specific requirements. We also discuss techniques and organizations used in other program databases to save space: sharing at header file granularity; ruthless simplification of the database; and lazy loading of data into the database. Finally, we note the potential problems associated with independently implemented translators feeding into the same database.

Samuel Kendall, Sun Microsystems Labs

Glenn Allinn, CenterLine Software

BibTeX
@inproceedings {252344,
author = {Samuel Kendall and Glenn Allinn},
title = {Sharing Between Translation Units in C++ Program Databases},
booktitle = {USENIX 6th C++ Technical Conference (USENIX 6th C++ Technical Conference)},
year = {1994},
address = {Cambridge, MA},
url = {https://www.usenix.org/conference/usenix-6th-c-technical-conference/sharing-between-translation-units-c-program-databases},
publisher = {USENIX Association},
month = apr,
}
Download

Links

Paper: 
http://usenix.org/publications/library/proceedings/c++94/full_papers/kendall.ps
  • Log in or    Register to post comments

© USENIX

  • Privacy Policy
  • Contact Us