JOINING A PLURALITY OF TYPE
HIERARCHIES IN AN OBJECT ORIENTED
PROGRAMMING LANGUAGE WITHOUT
INHERITING FROM A BASE CLASS AND
WITHOUT MODIFICATION TO THE TYPE
 Inventors: Evan R. Kirshenbaum, Mountain
View; Keith E. Moore, Santa Clara,
both of Calif.
 Assignee: Hewlett-Packard Company, Palo Alto, Calif.
[ * ] Notice: This patent issued on a continued prosecution application filed under 37 CFR 1.53(d), and is subject to the twenty year patent term provisions of 35 U.S.C. 154(a)(2).
 Appl. No.: 08/826,540  Filed: Apr. 3, 1997
 Int. CI. G06F 9 44
 U.S. CI 395/708; 395/707
 Field of Search 395/703, 708,
 References Cited
James Rumbaugh et al. Object Oriented Modeling and Design pp. l-3,8,23,27-46,6-=62,84-85,243,299, Nov. 1990.
Bjarne Stroustrup et al., The Annotated C++ Reference Manual, pp. 37,58-59,111,113,195-207,217-221,280,282, 285,295-299,307-327,329, 1990.
Bjarne Stroustrup, The Design and Evolution of C++, pp. 22,58-60,238241,301-304,365-373, Mar. 1994. Jim Holmes, Object Oriented Compiler Construction, pp. 133-182, 417, Nov. 1994.
Type Systems for Querying Class Hierarchies with
Non-strict Inheritence Alexander Borgida, 1989.
The ObjectStore database system Charles Lamb et al, Oct.
The Design and Evolution of C++ B. Stroustrup—Whole book, Mar. 1994.
The Annotated C++ Reference manual pp. 163-237, 341-351 and 417 (reprinted version), Jan. 1994.
Object-Oriented Information Systems David Taylor, Apr. 1992.
Type-safe Linkage for C++, Stroustrup USENIX Proceedings C++ Conference Denver Co., Oct. 1988.
Mixin-based Inheritance G. Bracha et al ACM OOPSLA, 1990.
Reusablity Through Fine Grain Inheritance Johnson et al. GEC-Marconi Ltd, Jun. 1991.
Object Oriented Program Slicing, L. Roberta UMI Dissertation Services, Apr. 1994.
M.A. Ellis & B. Stroustrup, "The Annotated C++Reference
Manual", pp. 307-340, 1990.
S. Meyers, More "Effective C++," pp. 159-182, 1996.
S. Meyers, More "Effective C++," pp. 181-182, 1996.
Primary Examiner—Tariq R. Hafiz
Assistant Examiner—-Todd Ingberg
A system and method using a computer for joining a plurality of hierarchies of types is described. Each type in each type hierarchy includes a template for objects. At least one reference class is defined as computer-readable instructions stored in a memory of a computer for defining a class and includes a discriminator which can refer to instances of at least one such type within one of the type hierarchies and including, for each type hierarchy, an initialization function which takes as an argument a reference to an instance of any of the types in the type hierarchy. The initialization function included for each type hierarchy is performed by loading the discriminator with the argument of the initialization function.
31 Claims, 3 Drawing Sheets