Patent US6163880A successfully refreshed from Google Patents.
← Back to Patent Explorer
US6163880A Expired / Lapsed US ⏱️ 0.0 years remaining

Object model for Java™

Assignee: International Business Machines Corp
•
Filing: 1999-02-26
•
Granted: 2000-12-19
•
Expires: 2019-02-26
📄 Original PDF 🌐 Google Patents 🔄 Sync Now

Abstract

Abstract The mechanism includes three data structures: object data associated with each object O1, O2, O3 ... of a program, a class descriptor associated with the classes to which the objects O1, O2, O3 ... belong, and interface references. For each class C i , the class descriptor corresponding to the class C i includes: i) a class method table comprising one or more entries, wherein each entry identifies an implementation of a method inherited or defined by the class C i ; and ii) for each interface implemented by the class C i , an interface method table comprising one or more entries, wherein each entry identifies an implementation of a method declared by the particular interface or an implementation of a method declared by an interface extended by the particular interface. An interface reference for an interface declaration ID associated with a given object OI, wherein the object OI implements methods that are declared by an interface declaration ID includes a pointer to the interface method table corresponding to the interface declaration ID within the class descriptor corresponding to the object OI. An efficient mechanism for method invocations is provided by generating an index that identifies the entry corresponding to the appropriate method in the interface method table pointed to by the pointer of the interface reference, reading the data stored by the entry identified by the index, and controlling the computer processing apparatus to jump to the address identified by the data.

Inventors

  • 👤 Ganesan Ramalingam
  • 👤 Harini Srinivasan

Bibliographic Details

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

Claims Analysis

Total Claims: 39
Claim 1
Independent Claim 258 words
An article of manufacture comprising a computer useable medium having computer readable program code means embodied therein for representing interface references in an object oriented language, wherein objects correspond to one or more classes, a class is capable of implementing one or more interfaces, an interface is associated with a set of methods, said object oriented language provides for inheritance of said interfaces whereby a first interface may extend one or more other interfaces, and an interface reference IRi is associated with an interface ID IRi and with an object OI corresponding to a class that implements the interface ID IRi, the computer readable program code means in said article of manufacture comprising computer readable program code means for causing a computer to effect: (a) for each class Ci of objects, storing in memory descriptor data corresponding to said class Ci, wherein said descriptor data includes: for each interface declaration IDi implemented by said class Ci, an interface method table containing one of an implementation of a method declared by said interface declaration IDi and an implementation of a method declared by an interface declaration extended by said interface declaration IDi; and (b) for each interface IRi, wherein interface reference IRi is associated with an interface declaration ID IRi and corresponds to a given object OI, storing in memory a first identifier that identifies an interface method table corresponding to the interface ID IRi within the descriptor data for the class corresponding to the object OI, and storing in memory a second identifier that identifies said object OI.
Claim 2
Dependent Claim 258 words
An article of manufacture comprising a computer useable medium having computer readable program code means embodied therein for representing interface references in an object oriented language, wherein objects correspond to one or more classes, a class is capable of implementing one or more interfaces, an interface is associated with a set of methods, said object oriented language provides for inheritance of said interfaces whereby a first interface may extend one or more other interfaces, and an interface reference IRi is associated with an interface ID IRi and with an object OI corresponding to a class that implements the interface ID IRi, the computer readable program code means in said article of manufacture comprising computer readable program code means for causing a computer to effect: (a) for each class Ci of objects, storing in memory descriptor data corresponding to said class Ci, wherein said descriptor data includes: for each interface declaration IDi implemented by said class Ci, an interface method table containing one of an implementation of a method declared by said interface declaration IDi and an implementation of a method declared by an interface declaration extended by said interface declaration IDi; and (b) for each interface IRi, wherein interface reference IRi is associated with an interface declaration ID IRi and corresponds to a given object OI, storing in memory a first identifier that identifies an interface method table corresponding to the interface ID IRi within the descriptor data for the class corresponding to the object OI, and storing in memory a second identifier that identifies said object OI.
Claim 3
Dependent Claim 51 words
An article of manufacture as recited in claim 1, the computer readable program code means in said article of manufacture further comprising computer readable program code means for causing a computer to effect: for each interface reference IR i , storing in memory a second identifier that identifies said object OI.
Claim 4
Dependent Claim 57 words
An article of manufacture as recited in claim 1, wherein for each class C i of objects, said descriptor data corresponding to said class C i stored in memory includes a class method table comprising one or more entries, wherein each entry identifies an implementation of a method inherited or defined by said class C i .
Claim 5
Dependent Claim 62 words
An article of manufacture as recited in claim 1, the computer readable program code means in said article of manufacture further comprising computer readable program code means for causing a computer to effect: for each object O, storing in memory a third identifier for identifying a class method table within said descriptor data associated with a class corresponding to said object O.
Claim 6
Dependent Claim 32 words
An article of manufacture as recited in claim 1, wherein said descriptor data corresponding to said class C i is created and stored in memory when said class C i is declared.
Claim 7
Dependent Claim 74 words
An article of manufacture as recited in claim 1, the computer readable program code means in said article of manufacture further comprising computer readable program code means for causing a computer to effect: creating and storing in memory code for generating said first identifier corresponding to said interface reference IR i upon detection of a statement wherein said object OI is assigned to said interface reference IR i corresponding to said interface declaration ID.
Claim 8
Dependent Claim 70 words
An article of manufacture as recited in claim 1, the computer readable program code means in said article of manufacture further comprising computer readable program code means for causing a computer to effect: creating and storing in memory code for generating said first identifier corresponding to said interface IR i upon detection of a statement wherein an interface reference IR j is assigned to said interface reference IR i .
Claim 9
Dependent Claim 138 words
An article of manufacture as recited in claim 1, the computer readable program code means in said article of manufacture further comprising computer readable program code means, wherein when a method M is invoked via a reference to an interface declaration ID M , said computer readable program code means causes a computer to effect: (i) retrieving from memory said second identifier associated with the interface declaration ID M , wherein said second identifier identifies said interface method table corresponding to said interface declaration ID M ; (ii) generating an index corresponding to said method M based upon said second identifier retrieved from memory, wherein said index identifies an entry in said interface method table corresponding to said method M; (iii) retrieving said entry identified by said index; and (iv) invoking said method M using the retrieved entry.
Claim 10
Dependent Claim 160 words
An article of manufacture as recited in claim 1, the computer readable program code means in said article of manufacture further comprising computer readable program code means, wherein when a method M is invoked via a reference to an interface declaration ID M , said computer readable program code means causes a computer to effect: (i) retrieving from memory said second identifier associated with the interface declaration ID M ; (ii) generating an index corresponding to said method M based upon said second identifier retrieved from memory, wherein said index identifies an entry in said interface method table corresponding to said method M; (iii) retrieving said entry identified by said index; (iv) invoking said method M using the retrieved entry; (v) retrieving from memory said third identifier associated with said interface declaration IDM, wherein said third identifier identifies an object OM corresponding to said interface declaration ID M ; and (vi) passing said retrieved third identifier to said method M.
Claim 11
Dependent Claim 101 words
An article of manufacture as recited in claim 1, the computer readable program code means in said article of manufacture further comprising computer readable program code means, wherein for each class C i of objects, the computer readable program code means for causing a computer to effect: storing in memory a class-interface cast table comprising one or more entries each associated with a given interface I1 implemented by said class C i , wherein each entry identifies offset from a start address of said class method table for said class C i to an interface table corresponding to said interface I1.
Claim 12
Dependent Claim 118 words
An article of manufacture as recited in claim 1, the computer readable program code means in said article of manufacture further comprising computer readable program code means, wherein for each class C i of objects, the computer readable program code means for causing a computer to effect: storing in memory an interface-interface cast table for each interface I1 implemented by said class C i , wherein said interface-interface cast table for said interface I1 comprises one or more entries each associated with an interface I2 extended by said interface I1, wherein each entry identifies offset from a start address of said interface method table for said interface I1 to an interface method table corresponding to said interface I2.
Claim 13
Dependent Claim 96 words
An article of manufacture as recited in claim 1, the computer readable program code means in said article of manufacture further comprising computer readable program code means, wherein for each interface, the computer readable program code means for causing a computer to effect: storing in memory a function table corresponding to a given interface, wherein said function table stores one or more entries each associated with a given method of said given interface, wherein each entry identifies offset of an entry corresponding to said given method within said interface method table corresponding to said given interface.
Claim 14
Dependent Claim 247 words
A program storage device readable by machine, tangibly embodying a program of instructions executable by the machine to perform method steps for representing interface references in an object oriented language, wherein objects correspond to one or more classes, a class is capable of implementing one or more interfaces, an interface is associated with a set of methods, said object oriented language provides for inheritance of said interfaces whereby a first interface may extend one or more other interfaces, and an interface reference IRi is associated with an interface ID IRi and with an object OI corresponding to a class that implements the interface ID IRi, said computer implemented method comprising the steps of: (a) for each class Ci of objects, storing in memory descriptor data corresponding to said class Ci, wherein said descriptor data includes: for each interface declaration IDi implemented by said class Ci, an interface method table containing one of an implementation of a method declared by said interface declaration IDi and an implementation of a method declared by an interface declaration extended by said interface declaration IDi; and (b) for each interface IRi, wherein interface reference IRi is associated with an interface declaration ID IRi and corresponds to a given object OI, storing in memory a first identifier that identifies an interface method table corresponding to the interface ID IRi within the descriptor data for the class corresponding to the object OI, and storing in memory a second identifier that identifies said object OI.
Claim 15
Dependent Claim 247 words
A program storage device readable by machine, tangibly embodying a program of instructions executable by the machine to perform method steps for representing interface references in an object oriented language, wherein objects correspond to one or more classes, a class is capable of implementing one or more interfaces, an interface is associated with a set of methods, said object oriented language provides for inheritance of said interfaces whereby a first interface may extend one or more other interfaces, and an interface reference IRi is associated with an interface ID IRi and with an object OI corresponding to a class that implements the interface ID IRi, said computer implemented method comprising the steps of: (a) for each class Ci of objects, storing in memory descriptor data corresponding to said class Ci, wherein said descriptor data includes: for each interface declaration IDi implemented by said class Ci, an interface method table containing one of an implementation of a method declared by said interface declaration IDi and an implementation of a method declared by an interface declaration extended by said interface declaration IDi; and (b) for each interface IRi, wherein interface reference IRi is associated with an interface declaration ID IRi and corresponds to a given object OI, storing in memory a first identifier that identifies an interface method table corresponding to the interface ID IRi within the descriptor data for the class corresponding to the object OI, and storing in memory a second identifier that identifies said object OI.
Claim 16
Dependent Claim 32 words
A program storing device as recited in claim 13, said method steps further comprising: for each interface reference IR i , storing in memory a second identifier that identifies said object OI.
Claim 17
Dependent Claim 57 words
A program storing device as recited in claim 13, wherein, for each class C i of objects, said descriptor data corresponding to said class C i stored in memory includes a class method table comprising one or more entries, wherein each entry identifies an implementation of a method inherited or defined by said class C i .
Claim 18
Dependent Claim 44 words
A program storing device as recited in claim 13, further comprising the step of: (c) for each object O, storing in memory a third identifier for identifying a class method table within said descriptor data associated with a class corresponding to said object O.
Claim 19
Dependent Claim 114 words
A program storing device as recited in claim 16, further comprising the step of: (d) when a method M is invoked via a reference to an interface declaration ID M , (i) retrieving from memory said second identifier associated with the interface declaration ID M , wherein said second identifier identifies said interface method table corresponding to said interface declaration ID M ; (ii) generating an index corresponding to said method M based upon said second identifier retrieved from memory, wherein said index identifies an entry in said interface method table corresponding to said method M; (iii) retrieving said entry identified by said index; and (iv) invoking said method M using the retrieved entry.
Claim 20
Dependent Claim 136 words
A program storing device as recited in claim 16, further comprising the step of: (d) when a method M is invoked via a reference to an interface declaration ID M , (i) retrieving from memory said second identifier associated with the interface declaration ID M ; (ii) generating an index corresponding to said method M based upon said second identifier retrieved from memory, wherein said index identifies an entry in said interface method table corresponding to said method M; (iii) retrieving said entry identified by said index; (iv) invoking said method M using the retrieved entry; (v) retrieving from memory said third identifier associated with said interface declaration IDM, wherein said third identifier identifies an object OM corresponding to said interface declaration ID M ; and (vi) passing said retrieved third identifier to said method M.
Claim 21
Dependent Claim 32 words
A program storing device as recited in claim 13, wherein said descriptor data corresponding to said class C i is created and stored in memory when said class C i is declared.
Claim 22
Dependent Claim 52 words
A program storing device as recited in claim 13, wherein code for generating said first identifier corresponding to said interface reference IR i is created and stored in memory upon detection of a statement wherein said object OI is assigned to said interface reference IR i corresponding to said interface declaration ID.
Claim 23
Dependent Claim 47 words
A program storing device as recited in claim 13, wherein code for generating said first identifier corresponding to said interface IRi is created and stored in memory upon detection of a statement wherein an interface reference IR j is assigned to said interface reference IR i .
Claim 24
Dependent Claim 75 words
A program storing device as recited in claim 13, further comprising the step of: for each class C i of objects, storing in memory a class-interface cast table comprising one or more entries each associated with a given interface I1 implemented by said class C i , wherein each entry identifies offset from a start address of said class method table for said class C i to an interface table corresponding to said interface I1.
Claim 25
Dependent Claim 92 words
A program storing device as recited in claim 13, further comprising the step of: for each class C i of objects, storing in memory an interface-interface cast table for each interface I1 implemented by said class C i , wherein said interface-interface cast table for said interface I1 comprises one or more entries each associated with an interface I2 extended by said interface I1, wherein each entry identifies offset from a start address of said interface method table for said interface I1 to an interface method table corresponding to said interface I2.
Claim 26
Dependent Claim 70 words
A program storing device as recited in claim 13, further comprising the step of: for each interface, storing in memory a function table corresponding to a given interface, wherein said function table stores one or more entries each associated with a given method of said given interface, wherein each entry identifies offset of an entry corresponding to said given method within said interface method table corresponding to said given interface.
Claim 27
Dependent Claim 243 words
A computer program product comprising a computer useable medium having computer readable program code means embodied therein for causing interface references in an object oriented language, wherein objects correspond to one or more classes, a class is capable of implementing one or more interfaces, an interface is associated with a set of methods, said object oriented language provides for inheritance of said interfaces whereby a first interface may extend one or more other interfaces, and an interface reference IRi is associated with an interface ID IRi and with an object OI corresponding to a class that implements the interface ID IRi, said computer implemented method comprising the steps of: (a) for each class Ci of objects, storing in memory descriptor data corresponding to said class Ci, wherein said descriptor data includes: for each interface declaration IDi implemented by said class Ci, an interface method table containing one of an implementation of a method declared by said interface declaration IDi and an implementation of a method declared by an interface declaration extended by said interface declaration IDi; and (b) for each interface IRi, wherein interface reference IRi is associated with an interface declaration ID IRi and corresponds to a given object OI, storing in memory a first identifier that identifies an interface method table corresponding to the interface ID IRi within the descriptor data for the class corresponding to the object OI, and storing in memory a second identifier that identifies said object OI.
Claim 28
Dependent Claim 243 words
A computer program product comprising a computer useable medium having computer readable program code means embodied therein for causing interface references in an object oriented language, wherein objects correspond to one or more classes, a class is capable of implementing one or more interfaces, an interface is associated with a set of methods, said object oriented language provides for inheritance of said interfaces whereby a first interface may extend one or more other interfaces, and an interface reference IRi is associated with an interface ID IRi and with an object OI corresponding to a class that implements the interface ID IRi, said computer implemented method comprising the steps of: (a) for each class Ci of objects, storing in memory descriptor data corresponding to said class Ci, wherein said descriptor data includes: for each interface declaration IDi implemented by said class Ci, an interface method table containing one of an implementation of a method declared by said interface declaration IDi and an implementation of a method declared by an interface declaration extended by said interface declaration IDi; and (b) for each interface IRi, wherein interface reference IRi is associated with an interface declaration ID IRi and corresponds to a given object OI, storing in memory a first identifier that identifies an interface method table corresponding to the interface ID IRi within the descriptor data for the class corresponding to the object OI, and storing in memory a second identifier that identifies said object OI.
Claim 29
Dependent Claim 32 words
A computer program product as recited in claim 25, further comprising the step of: for each interface reference IR i , storing in memory a second identifier that identifies said object OI.
Claim 30
Dependent Claim 57 words
A computer program product as recited in claim 25, wherein, for each class C i of objects, said descriptor data corresponding to said class C i stored in memory includes a class method table comprising one or more entries, wherein each entry identifies an implementation of a method inherited or defined by said class C i .
Claim 31
Dependent Claim 44 words
A computer program product as recited in claim 27, further comprising the step of: (c) for each object O, storing in memory a third identifier for identifying a class method table within said descriptor data associated with a class corresponding to said object O.
Claim 32
Dependent Claim 114 words
A computer program product as recited in claim 28, further comprising the step of: (d) when a method M is invoked via a reference to an interface declaration ID M , (i) retrieving from memory said second identifier associated with the interface declaration ID M , wherein said second identifier identifies said interface method table corresponding to said interface declaration ID M ; (ii) generating an index corresponding to said method M based upon said second identifier retrieved from memory, wherein said index identifies an entry in said interface method table corresponding to said method M; (iii) retrieving said entry identified by said index; and (iv) invoking said method M using the retrieved entry.
Claim 33
Dependent Claim 32 words
A computer program product as recited in claim 25, wherein said descriptor data corresponding to said class C i is created and stored in memory when said class C i is declared.
Claim 34
Dependent Claim 52 words
A computer program product as recited in claim 25, wherein code for generating said first identifier corresponding to said interface reference IR i is created and stored in memory upon detection of a statement wherein said object OI is assigned to said interface reference IR i corresponding to said interface declaration ID.
Claim 35
Dependent Claim 47 words
A computer program product as recited in claim 25, wherein code for generating said first identifier corresponding to said interface IRi is created and stored in memory upon detection of a statement wherein an interface reference IR j is assigned to said interface reference IR i .
Claim 36
Dependent Claim 134 words
The computer implemented method of claim 26, further comprising the step of: (d) when a method M is invoked via a reference to an interface declaration ID M , (i) retrieving from memory said second identifier associated with the interface declaration ID M ; (ii) generating an index corresponding to said method M based upon said second identifier retrieved from memory, wherein said index identifies an entry in said interface method table corresponding to said method M; (iii) retrieving said entry identified by said index; (iv) invoking said method M using the retrieved entry; (v) retrieving from memory said third identifier associated with said interface declaration IDM, wherein said third identifier identifies an object OM corresponding to said interface declaration ID M ; and (vi) passing said retrieved third identifier to said method M.
Claim 37
Dependent Claim 73 words
The computer implemented method of claim 25, further comprising the step of: for each class C i of objects, storing in memory a class-interface cast table comprising one or more entries each associated with a given interface I1 implemented by said class C i , wherein each entry identifies offset from a start address of said class method table for said class C i to an interface table corresponding to said interface I1.
Claim 38
Dependent Claim 90 words
The computer implemented method of claim 25, further comprising the step of: for each class C i of objects, storing in memory an interface-interface cast table for each interface I1 implemented by said class C i , wherein said interface-interface cast table for said interface I1 comprises one or more entries each associated with an interface I2 extended by said interface I1, wherein each entry identifies offset from a start address of said interface method table for said interface I1 to an interface method table corresponding to said interface I2.
Claim 39
Dependent Claim 68 words
The computer implemented method of claim 25, further comprising the step of: for each interface, storing in memory a function table corresponding to a given interface, wherein said function table stores one or more entries each associated with a given method of said given interface, wherein each entry identifies offset of an entry corresponding to said given method within said interface method table corresponding to said given interface.

References Cited (Backward Citations)

US5265206A Cited
US5361350A Cited
US5481708A Cited
US5493680A Cited
US5404525A Cited
US5918052A Cited
US5367685A Cited
US5758160A Cited
US5748964A Cited
US5692183A Cited
US5911074A Cited
US5953527A Cited

USPTO Annuity & Maintenance Windows

Annuity Stage Window Opens Payment Deadline Surcharge Period Until Estimated Fee Status
3.5 Years (Year 4) 2003-12-19 2004-06-19 2004-12-19 $2000.00 Window Closed / Lapsed
7.5 Years (Year 8) 2007-12-19 2008-06-19 2008-12-19 $3760.00 Window Closed / Lapsed
11.5 Years (Year 12) 2011-12-19 2012-06-19 2012-12-19 $7700.00 Window Closed / Lapsed

Assigned Categories & Tags

No categories assigned to this patent yet.

Assign Category Tag