Software Practices Lab Homepage
Information Fragments
Registration-Based Abstraction
Summarizing Software Artifacts
past projects...
Reading Group
SPL Wiki [local access]

Eliminating Cycles from Composed Class Hierarchies
Robert J. Walker

Technical report TR-00-07, Department of Computer Science, University of British Columbia, 8 July 2000.

PDF    gzipped PostScript


Multiple class hierarchies can be used each to represent a separate requirement or design concern. To yield a working system, these disparate hierarchies must be composed in a semantically meaningful way. However, cycles can arise in the composed inheritance graph that restrict the space of composable hierarchies. This work presents an approach to eliminating these cycles by means of separating the type hierarchy from the implementation hierarchy; separate solutions are provided for languages permitting multiple inheritance, such as C++, and those permitting only interfaces, such as Java. The resulting acyclic class hierarchy will maintain the significant constraints imposed by the original, separate hierarchies, such as type-safety.