← Back to Patent Explorer
US5918052A Expired / Lapsed US ⏱️ 0.0 years remaining

Multiple inheritance mechanism for an object oriented programming environment

Assignee: International Business Machines Corp
•
Filing: 1994-11-16
•
Granted: 1999-06-29
•
Expires: 2014-11-16
📄 Original PDF 🌐 Google Patents 🔄 Sync Now

Abstract

Abstract The data structures, apparatus, methods, and mechanisms of the present invention cooperate to provide the user with a flexible multiple inheritance OOP environment. OOP environments comprise composite data structures and internal mechanisms for manipulating those structures. The structures are used to allow a user to realize the power of OOP. Hence, the layout of these structures, the way in which the structures inter-relate, and the manner in which they are built and used are all critical to the utility of a particular OOP environment. It is no surprise, then, that manufacturers and suppliers of OOP environments are constantly striving to design composite data structures and internal mechanisms which maximize user productivity. The composite data structures and organization of the MOM OOP environment provide significant benefits that are not provided by the multiple inheritance environments of the prior art. Of particular significance is the ability to add method programs to a class definition without the need to recompile the majority of the code base.

Inventors

  • 👤 Vincent Joseph Kruskal
  • 👤 Ashok Malhotra
  • 👤 Steven Jay Munroe

Bibliographic Details

Application Number —
Jurisdiction US
Data Source google_patents
Last Synchronized 2026-10-29 02:04
CPC Classifications
G; G06; G06F; G06F9/00; G06F9/06; G06F9/44; G06F9/448; G06F9/4488; G06F9/449

Claims Analysis

Total Claims: 26
Claim 1
Independent Claim 146 words
A computer implemented method for creating and storing a portion of an inheritance graph, said method comprising the steps of: initiating a mechanism which creates an object instance; connecting a first interface table to said object instance via location information contained in said object; said first interface table being connected to a second interface table via location information contained in said first interface table such that said object instance is part of a multiple inheritance relationship within said inheritance graph; said first interface table being connected to a first and a second method table, said first and said second method tables being individually connected to said first interface table via location information contained in said first interface table; said second interface table being connected to a third method table via location information contained in said second interface table; and storing said object instance in data storage.
Claim 2
Dependent Claim 146 words
A computer implemented method for creating and storing a portion of an inheritance graph, said method comprising the steps of: initiating a mechanism which creates an object instance; connecting a first interface table to said object instance via location information contained in said object; said first interface table being connected to a second interface table via location information contained in said first interface table such that said object instance is part of a multiple inheritance relationship within said inheritance graph; said first interface table being connected to a first and a second method table, said first and said second method tables being individually connected to said first interface table via location information contained in said first interface table; said second interface table being connected to a third method table via location information contained in said second interface table; and storing said object instance in data storage.
Claim 3
Dependent Claim 26 words
The method of claim 1 wherein said initiating step further comprises the steps of: creating instance variables; and placing said instance variables into said object instance.
Claim 4
Dependent Claim 167 words
A data storage for storing data for access by at least one computer program, said data storage comprising: an inheritance graph stored in said data storage, said inheritance graph comprising: at least one object instance; first, second, and third method tables, said first, said second and said third method tables each containing location information about method programs; and a first interface table and a second interface table, said first interface table containing location information about said first method table and said second method table, said second interface table containing location information about said third method table, said first interface table being connected to said at least one object instance via location information contained in said at least one object instance, said second interface table being connected to said first interface table via location information contained in said first interface table, said first interface table and said second interface table being connected such that said object instance is part of a multiple inheritance relationship within said inheritance graph.
Claim 5
Dependent Claim 167 words
A data storage for storing data for access by at least one computer program, said data storage comprising: an inheritance graph stored in said data storage, said inheritance graph comprising: at least one object instance; first, second, and third method tables, said first, said second and said third method tables each containing location information about method programs; and a first interface table and a second interface table, said first interface table containing location information about said first method table and said second method table, said second interface table containing location information about said third method table, said first interface table being connected to said at least one object instance via location information contained in said at least one object instance, said second interface table being connected to said first interface table via location information contained in said first interface table, said first interface table and said second interface table being connected such that said object instance is part of a multiple inheritance relationship within said inheritance graph.
Claim 6
Dependent Claim 17 words
The data storage of claim 3 wherein said at least one object instance further comprises instance variables.
Claim 7
Dependent Claim 26 words
The data storage of claim 3 wherein said first, said second and said third method tables further comprise data location means for locating said instance variables.
Claim 8
Dependent Claim 155 words
A data storage for storing data for access by at least one computer program, said data storage comprising: an inheritance graph, said inheritance graph comprising: at least one class object; first, second, and third method tables, said first, said second and said third method tables each containing location information about method programs; and first and second interface tables, said first interface table containing location information about said first method table and said second method table, said second interface table containing location information about said third method table, said first interface table being connected to said class object via location information contained in said at least one class object, said second interface table being connected to said first interface table via location information contained in said first interface table, said first interface table and said second interface table being connected such that said object instance is part of a multiple inheritance relationship within said inheritance graph.
Claim 9
Dependent Claim 155 words
A data storage for storing data for access by at least one computer program, said data storage comprising: an inheritance graph, said inheritance graph comprising: at least one class object; first, second, and third method tables, said first, said second and said third method tables each containing location information about method programs; and first and second interface tables, said first interface table containing location information about said first method table and said second method table, said second interface table containing location information about said third method table, said first interface table being connected to said class object via location information contained in said at least one class object, said second interface table being connected to said first interface table via location information contained in said first interface table, said first interface table and said second interface table being connected such that said object instance is part of a multiple inheritance relationship within said inheritance graph.
Claim 10
Dependent Claim 18 words
The data storage of claim 6 wherein said at least one class object further comprises instance variable definitions.
Claim 11
Dependent Claim 27 words
The data storage of claim 7 wherein said first, said second, and said third method tables further comprise data location means for locating said instance variable definitions.
Claim 12
Dependent Claim 224 words
A computer implemented method for creating and storing an inheritance graph, said method comprising the steps of: initiating a mechanism which creates at least one class object; creating first and second interface tables; creating first, second, and third method tables; connecting said first interface table to said at least one class object via location information located in said class object; connecting said second interface table to said first interface table via location information contained in said first interface table, said first interface table and said second interface table being connected such that said class object is part of a multiple inheritance relationship within said inheritance graph; connecting said first and said second method tables to said first interface table, said first and said second method tables being individually connected to said first interface table via location information contained in said first interface table; connecting said third method table to said second interface table, said third method table being connected to said second interface table via location information contained in said second interface table; connecting method programs to each of said method tables, said method programs being individually connected to said method table via, location information contained in said first, said second, and said third method tables; and storing said at least one class object, said interface tables, and said method tables in data storage.
Claim 13
Dependent Claim 224 words
A computer implemented method for creating and storing an inheritance graph, said method comprising the steps of: initiating a mechanism which creates at least one class object; creating first and second interface tables; creating first, second, and third method tables; connecting said first interface table to said at least one class object via location information located in said class object; connecting said second interface table to said first interface table via location information contained in said first interface table, said first interface table and said second interface table being connected such that said class object is part of a multiple inheritance relationship within said inheritance graph; connecting said first and said second method tables to said first interface table, said first and said second method tables being individually connected to said first interface table via location information contained in said first interface table; connecting said third method table to said second interface table, said third method table being connected to said second interface table via location information contained in said second interface table; connecting method programs to each of said method tables, said method programs being individually connected to said method table via, location information contained in said first, said second, and said third method tables; and storing said at least one class object, said interface tables, and said method tables in data storage.
Claim 14
Dependent Claim 30 words
The computer implemented method of claim 9 wherein said initiating step further comprises the steps of: creating instance variable definitions; and placing said instance variable definitions into said class object.
Claim 15
Dependent Claim 302 words
A computer implemented method for invoking a method program for a particular class, said method comprising the steps of: calling an object, said object beinig part of a multiple inheritance relationship, said calling step being performed via a calling statement, said calling statement comprising an address for said object, a level, a call signature, and a method program offset, said level representing said class to which said call is to be directed and said method program offset representing a method program that is to be invoked; accessing said object via said object address; accessing a first interface table via an interface table address stored in said object; accessing a first method table via a first method table address stored in said first interface table, said first method table address being determined via said level; accessing a first method signature, said first method signature being accessed via said method program offset; first determining said first method signature matches said call signature; accessing a second interface table based on an indication in said first determining step that said first method signature does not match said call signature, said second interface table being accessed via location information contained in said first interface table; accessing a second method table via a second method table address stored in said second interface table, said second method table address being determined via said level; accessing a second method signature, said second method signature being accessed via said method program offset; second determining whether said second method signature matches said call signature; accessing a method program address based on an indication in said second determining step that said second method signature does match said call signature, said method program address being accessed via said method program offset; and invoking said method program through the use of said method program address.
Claim 16
Dependent Claim 302 words
A computer implemented method for invoking a method program for a particular class, said method comprising the steps of: calling an object, said object beinig part of a multiple inheritance relationship, said calling step being performed via a calling statement, said calling statement comprising an address for said object, a level, a call signature, and a method program offset, said level representing said class to which said call is to be directed and said method program offset representing a method program that is to be invoked; accessing said object via said object address; accessing a first interface table via an interface table address stored in said object; accessing a first method table via a first method table address stored in said first interface table, said first method table address being determined via said level; accessing a first method signature, said first method signature being accessed via said method program offset; first determining said first method signature matches said call signature; accessing a second interface table based on an indication in said first determining step that said first method signature does not match said call signature, said second interface table being accessed via location information contained in said first interface table; accessing a second method table via a second method table address stored in said second interface table, said second method table address being determined via said level; accessing a second method signature, said second method signature being accessed via said method program offset; second determining whether said second method signature matches said call signature; accessing a method program address based on an indication in said second determining step that said second method signature does match said call signature, said method program address being accessed via said method program offset; and invoking said method program through the use of said method program address.
Claim 17
Dependent Claim 50 words
The computer implemented method of claim 11 wherein said invoking step further comprises the step of supplying said method program with said object address and a data offset, said object address and said data offset being used by said method program to access object instance variables stored in said object.
Claim 18
Dependent Claim 209 words
A computer apparatus for creating and storing an inheritance graph, said apparatus comprising: means for initiating a mechanism which creates at least one object instance; means for connecting a first interface table to said at least one object instance via location information contained in said object; means for connecting a second interface table to said first interface table via location information contained in said first interface table such that said object instance is part of a multiple inheritance relationship within said inheritance graph; means for connecting said first and said second method tables to said first interface table, said first and said second method tables being individually connected to said first interface table via location information contained in said first interface table; means for connecting a third method table to said second interface table, said third method table being connected to said second interface table via location information contained in said second interface table; means for connecting method programs to each of said method tables, said method programs being individually connected to said method tables via location information contained in said first, said second, and said third method tables; and means for storing said at least one object instance, said interface tables, and said method tables in data storage.
Claim 19
Dependent Claim 209 words
A computer apparatus for creating and storing an inheritance graph, said apparatus comprising: means for initiating a mechanism which creates at least one object instance; means for connecting a first interface table to said at least one object instance via location information contained in said object; means for connecting a second interface table to said first interface table via location information contained in said first interface table such that said object instance is part of a multiple inheritance relationship within said inheritance graph; means for connecting said first and said second method tables to said first interface table, said first and said second method tables being individually connected to said first interface table via location information contained in said first interface table; means for connecting a third method table to said second interface table, said third method table being connected to said second interface table via location information contained in said second interface table; means for connecting method programs to each of said method tables, said method programs being individually connected to said method tables via location information contained in said first, said second, and said third method tables; and means for storing said at least one object instance, said interface tables, and said method tables in data storage.
Claim 20
Dependent Claim 28 words
The computer apparatus claim 13 wherein said means for initiating further comprise: means for creating instance variables; and means for placing said instance variables into said object instance.
Claim 21
Dependent Claim 227 words
A computer apparatus for creating and storing an inheritance graph, said apparatus comprising: means for initiating a mechanism which creates at least one class object; means for creating first and second interface tables; means for creating first, second, and third method tables; means for connecting said first interface table to said at least one class object via location information contained in said class object; means for connecting said second interface table to said first interface table via location information contained in said first interface table such that said class object is part of a multiple inheritance relationship within said inheritance graph; means for connecting said first and said second method tables to said first interface table, said first and said second method tables being individually connected to said first interface table via location information contained in said first interface table; means for connecting said third method table to said second interface table, said third method table being connected to said second interface table via location information contained in said second interface table; means for connecting method programs to each of said method tables, said method programs being individually connected to said method table via, location information contained in said first, said second, and said third method tables; and means for storing said at least one class object, said interface tables, and said method tables in data storage.
Claim 22
Dependent Claim 227 words
A computer apparatus for creating and storing an inheritance graph, said apparatus comprising: means for initiating a mechanism which creates at least one class object; means for creating first and second interface tables; means for creating first, second, and third method tables; means for connecting said first interface table to said at least one class object via location information contained in said class object; means for connecting said second interface table to said first interface table via location information contained in said first interface table such that said class object is part of a multiple inheritance relationship within said inheritance graph; means for connecting said first and said second method tables to said first interface table, said first and said second method tables being individually connected to said first interface table via location information contained in said first interface table; means for connecting said third method table to said second interface table, said third method table being connected to said second interface table via location information contained in said second interface table; means for connecting method programs to each of said method tables, said method programs being individually connected to said method table via, location information contained in said first, said second, and said third method tables; and means for storing said at least one class object, said interface tables, and said method tables in data storage.
Claim 23
Dependent Claim 31 words
The computer apparatus of claim 15 wherein said means for initiating further comprises: means for creating instance variable definitions; and means for placing said instance variable definitions into said class object.
Claim 24
Dependent Claim 325 words
A computer apparatus for invoking a method program for a particular class, said apparatus comprising: means for calling an object, said object being part of a multiple inheritance relationship, said means for calling an object comprising a calling statement, said calling statement comprising an address for said object, a level, a call signature, and a method program offset, said level representing said class to which said call is to be directed and said method program offset representing a method program that is to be invoked; means for accessing said object via said object address; means for accessing a first interface table via an interface table address stored in said object; means for accessing a first method table via a first method table address stored in said first interface table, said first method table address being determined via said level; means for accessing a first method signature, said first method signature being accessed via said method program offset; first determining means for determining whether said first method signature matches said call signature; means for accessing a second interface table based on an indication by said first determining that said first method signature does not match said call signature, said second interface table being accessed via location information contained in said first interface table; means for accessing a second method table via a second method table address stored in said second interface table, said second method table address being determined via said level; means for accessing a second method signature, said second method signature being accessed via said method program offset; second determining means for determining whether said second method signature matches said call signature; means for accessing a method program address based on an indication by said second determining means that said second method signature does match said call signature, said method program address being accessed via said method program offset; and means for invoking said method program through the use of said method program address.
Claim 25
Dependent Claim 325 words
A computer apparatus for invoking a method program for a particular class, said apparatus comprising: means for calling an object, said object being part of a multiple inheritance relationship, said means for calling an object comprising a calling statement, said calling statement comprising an address for said object, a level, a call signature, and a method program offset, said level representing said class to which said call is to be directed and said method program offset representing a method program that is to be invoked; means for accessing said object via said object address; means for accessing a first interface table via an interface table address stored in said object; means for accessing a first method table via a first method table address stored in said first interface table, said first method table address being determined via said level; means for accessing a first method signature, said first method signature being accessed via said method program offset; first determining means for determining whether said first method signature matches said call signature; means for accessing a second interface table based on an indication by said first determining that said first method signature does not match said call signature, said second interface table being accessed via location information contained in said first interface table; means for accessing a second method table via a second method table address stored in said second interface table, said second method table address being determined via said level; means for accessing a second method signature, said second method signature being accessed via said method program offset; second determining means for determining whether said second method signature matches said call signature; means for accessing a method program address based on an indication by said second determining means that said second method signature does match said call signature, said method program address being accessed via said method program offset; and means for invoking said method program through the use of said method program address.
Claim 26
Dependent Claim 49 words
The computer apparatus of claim 17 wherein said means for invoking further comprises means for supplying said method program with said object address and a data offset, said object address and said data offset being used by said method program to access object instance variables stored in said object.

References Cited (Backward Citations)

US5313633A Cited
US5247669A Cited
US5075848A Cited
US5237654A Cited
US5247651A Cited
US5313630A Cited
US5291583A Cited
US5119475A Cited
US5187786A Cited
US5297284A Cited
US5404525A Cited
US5768588A Cited
US5774723A Cited

USPTO Annuity & Maintenance Windows

Annuity Stage Window Opens Payment Deadline Surcharge Period Until Estimated Fee Status
3.5 Years (Year 4) 2002-06-28 2002-12-28 2003-06-29 $2000.00 Window Closed / Lapsed
7.5 Years (Year 8) 2006-06-28 2006-12-28 2007-06-29 $3760.00 Window Closed / Lapsed
11.5 Years (Year 12) 2010-06-28 2010-12-28 2011-06-29 $7700.00 Window Closed / Lapsed

Assigned Categories & Tags

No categories assigned to this patent yet.

Assign Category Tag