Semantics and implementation of schema evolution in object-oriented databases
SIGMOD '87 Proceedings of the 1987 ACM SIGMOD international conference on Management of data
Class modification in the GemStone object-oriented DBMS
OOPSLA '87 Conference proceedings on Object-oriented programming systems, languages and applications
The annotated C++ reference manual
The annotated C++ reference manual
Persistence in the E Language: Issues and implementation
Software—Practice & Experience
Building an object-oriented database system: the story of 02
Building an object-oriented database system: the story of 02
Using interface inheritance to address problems in system software evolution
IDL '94 Proceedings of the workshop on Interface definition languages
Supporting the evolution of class definitions
OOPSLA '93 Addendum to the proceedings on Object-oriented programming systems, languages, and applications (Addendum)
Implementing remote procedure calls
ACM Transactions on Computer Systems (TOCS)
ABI compatibility through a customizable language
GPCE '10 Proceedings of the ninth international conference on Generative programming and component engineering
Hi-index | 0.00 |
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.