The object binary interface: C++ objects for evolvable shared class libraries

Loading...
Thumbnail Image
Files
smli_tr-94-26.pdf(70.88 KB)
Published Version
Date
1994-04
Authors
Goldstein, Theodore C.
Sloane, Alan
Journal Title
Journal ISSN
Volume Title
Publisher
USENIX Association Berkeley, CA, USA
Published Version
Research Projects
Organizational Units
Journal Issue
Abstract
Object-oriented design and object-oriented languages support the development of independent software components such as class libraries. When using such components, versioning becomes a key issue. While various ad-hoc techniques and coding idioms have been used to provide versioning, all of these techniques have deficiencies - ambiguity, the necessity of recompilation or re-coding, or the loss of binary compatibility of programs. Components from different software vendors are versioned at different times. Maintaining compatibility between versions must be consciously engineered. New technologies such as distributed objects further complicate libraries by requiring multiple implementations of a type simultaneously in a program. This paper describes a new C++ object model called the Shared Object Model for C++ users and a new implementation model called the Object Binary Interface for C++ implementors. These techniques provide a mechanism for allowing multiple implementations of an object in a program. Early analysis of this approach has shown it to have performance broadly comparable to conventional implementations.
Description
Keywords
Object-oriented design , Object-oriented languages , Versioning , C++ , Implementors
Citation
Goldstein, T. C. and Sloane, A. (1994) ‘The object binary interface: C++ objects for evolvable shared class libraries,’ CTEC'94: Proceedings of the 6th conference on USENIX Sixth C++ Technical Conference Volume 6, Cambridge, MA., 11 – 14 April.
Copyright
© 1994 The authors. Copyright to this work is retained by the authors. Permission is granted for the non-commercial reproduction of the complete work for educational or research work. This paper was originally published in the USENIX C++ Conference Proceedings, April 1994.