MSPLS Spring '95 Workshop

An Algebraic Semantics of Subobjects

Jonathan G. Rossie, Jr. and Daniel P. Friedman
Dept. of Computer Science, Indiana University

The most complex semantic issues arising from the kind of multiple inheritance best exemplified by C++ concern subobject selection, which occurs with method calls and instance variable references. Multiple inheritance, the dominance rule for disambiguation, and the presence of virtual and non-virtual base classes necessitate a semantic model that differentiates repeated inheritance on both the class and member levels. By abstracting the notion of a subobject, we present a practical, coherent algebra for determining the appropriate subobject in the face of these complications. This model provides an essential level of understanding for both language theorists and implementors.

Gerald Baumgartner