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

Method and mechanism for invocation on objects with interface inheritance

Assignee: Sun Microsystems Inc
•
Filing: 1997-01-15
•
Granted: 2002-06-25
•
Expires: 2017-01-15
📄 Original PDF 🌐 Google Patents 🔄 Sync Now

Abstract

Abstract Methods and apparatus in an object oriented programming environment for invocation of objects with interface inheritance. An object reference using mtables contains two parts, more specifically, a pointer to the data for an object and a pointer to the methods on the object. The methods on the object are represented by a collection of mtables. An mtable for a given interface consists of pointers to mtables for inherited interfaces and pointers to functions implementing the operations declared in the interface. An mtable pointer in an object reference points to an mtable for an apparent interface of the object reference. Mtables for any inherited interfaces are reached by indirection from the mtables for the apparent interface.

Inventors

  • 👤 Jonathan J. Gibbons
  • 👤 Graham Hamilton
  • 👤 Peter B. Kessler
  • 👤 Michael L. Powell
  • 👤 Sanjay R. Radia

Bibliographic Details

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

Claims Analysis

Total Claims: 24
Claim 1
Independent Claim 236 words
A computer implemented method for invocation of operations on objects with interface inheritance in an object oriented programming environment on a data processor containing memory, in which a plurality of objects are categorized into classes according to related operations, said method comprising: creating an mtable for an apparent interface for an object, the mtable including a plurality of pointers to functions for said interface and a plurality of pointers to additional mtables, said additional mtables being for a plurality of inherited interfaces of said object and having the same table structure as said mtable for said apparent interface; providing an identifier field including identifier information for said mtable contained within said mtable; providing a first count field identifying a numerical count of said plurality of pointers to functions contained within said mtable; providing a second count field identifying a numerical count of said plurality of pointers to additional mtables contained within said table; pointing to data for said object using a pointer, said pointer being part of an object reference, said data for said object being separate from said object reference; pointing to said mtable for said object using a pointer, said pointer being part of said object reference, said pointing to data and said pointing to said mtable being facilitated by said object reference using separate pointers; and invoking a plurality of operations on said data and said mtable pointed to by said object reference.
Claim 2
Dependent Claim 236 words
A computer implemented method for invocation of operations on objects with interface inheritance in an object oriented programming environment on a data processor containing memory, in which a plurality of objects are categorized into classes according to related operations, said method comprising: creating an mtable for an apparent interface for an object, the mtable including a plurality of pointers to functions for said interface and a plurality of pointers to additional mtables, said additional mtables being for a plurality of inherited interfaces of said object and having the same table structure as said mtable for said apparent interface; providing an identifier field including identifier information for said mtable contained within said mtable; providing a first count field identifying a numerical count of said plurality of pointers to functions contained within said mtable; providing a second count field identifying a numerical count of said plurality of pointers to additional mtables contained within said table; pointing to data for said object using a pointer, said pointer being part of an object reference, said data for said object being separate from said object reference; pointing to said mtable for said object using a pointer, said pointer being part of said object reference, said pointing to data and said pointing to said mtable being facilitated by said object reference using separate pointers; and invoking a plurality of operations on said data and said mtable pointed to by said object reference.
Claim 3
Dependent Claim 31 words
The method of claim 1 , further comprising representing mtables into operations per interface, said mtables having pointers to said operations, and pointers to base mtables, said pointers representing interface inheritance.
Claim 4
Dependent Claim 19 words
The method of claim 1 , further comprising representing said operations on said object by a collection of mtables.
Claim 5
Dependent Claim 21 words
The method of claim 1 wherein said plurality of pointers to functions, point to functions implementing operations declared in said interfaces.
Claim 6
Dependent Claim 18 words
The method of claim 1 , further comprising representing separate graphs of mtables for different implementations of operations.
Claim 7
Dependent Claim 18 words
The method of claim 1 , further comprising sharing mtables among classes for a common implementation of operations.
Claim 8
Dependent Claim 32 words
The method of claim 1 , further comprising sharing all mtables when implementations are remote procedure call stubs in a distributed object-oriented system using an interface definition language which supports interface inheritance.
Claim 9
Independent Claim 259 words
An apparatus for invocation of operations on objects with interface inheritance in an object oriented programming environment on a data processor containing memory, in which a plurality of objects are categorized into classes according to related operations, said apparatus comprising: a plurality of mtables, one being for an apparent interface for an object, the mtable including a plurality of pointers to functions for said interface, and a plurality of pointers to additional mtables, said additional mtables being for a plurality of inherited interfaces of said object and having the same table structure as said mtable for said apparent interface, said separate pointer and said table structure allowing for more efficient handling of the invocation of operation on said object with said plurality of inherited interfaces; an identifier field including identifier information for said mtable contained within said mtable; a first count field identifying a numerical count of said plurality of pointers to functions contained within said mtable; a second count field identifying a numerical count of said plurality of pointers to additional mtables contained within said table; a pointer to data for said object, said pointer being part of an object reference, said data for said object being separate from said object reference; a pointer to said mtable for said object, said pointer being part of said object reference, said pointer to said data and said pointer to said mtable facilitated by said object reference using separate pointers; and circuitry invoking a plurality of operations on said data and said plurality of mtables pointed to by said object reference.
Claim 10
Independent Claim 259 words
An apparatus for invocation of operations on objects with interface inheritance in an object oriented programming environment on a data processor containing memory, in which a plurality of objects are categorized into classes according to related operations, said apparatus comprising: a plurality of mtables, one being for an apparent interface for an object, the mtable including a plurality of pointers to functions for said interface, and a plurality of pointers to additional mtables, said additional mtables being for a plurality of inherited interfaces of said object and having the same table structure as said mtable for said apparent interface, said separate pointer and said table structure allowing for more efficient handling of the invocation of operation on said object with said plurality of inherited interfaces; an identifier field including identifier information for said mtable contained within said mtable; a first count field identifying a numerical count of said plurality of pointers to functions contained within said mtable; a second count field identifying a numerical count of said plurality of pointers to additional mtables contained within said table; a pointer to data for said object, said pointer being part of an object reference, said data for said object being separate from said object reference; a pointer to said mtable for said object, said pointer being part of said object reference, said pointer to said data and said pointer to said mtable facilitated by said object reference using separate pointers; and circuitry invoking a plurality of operations on said data and said plurality of mtables pointed to by said object reference.
Claim 11
Dependent Claim 20 words
The apparatus of claim 8 further comprising a representation of the collection of mtables for said operations on said object.
Claim 12
Dependent Claim 15 words
The apparatus of claim 8 wherein said functions implementing an operation declared in said interfaces.
Claim 13
Dependent Claim 33 words
The apparatus of claim 8 , further comprising a representation of mtables, one mtable per class of object, said mtables having pointers to operations, and pointers to mtables, said pointers representing interface inheritance.
Claim 14
Dependent Claim 20 words
The apparatus of claim 11 , further comprising a representation of separate graphs of mtables for different implementations of operations.
Claim 15
Dependent Claim 22 words
The apparatus of claim 12 , further comprising shared mtables, said shared mtables shared among classes for a common implementation of operations.
Claim 16
Dependent Claim 34 words
The apparatus of claim 13 , wherein said shared mtables are shared when said implementations are remote procedure call stubs in a distributed object-oriented system using an interface definition language which supports interface inheritance.
Claim 17
Dependent Claim 277 words
A computer system for invocation of operations on objects with interface inheritance in an object oriented programming environment on a data processor containing memory, in which a plurality of objects are categorized into classes according to related operations, said system comprising: a plurality of mtables, one being for an apparent interface for an object, the mtables having a table structure including an identifier of said interface, a plurality of pointers to functions for said interface, and a plurality of pointers to additional mtables, said additional mtables being for a plurality of inherited interfaces of said object and having the same table structure as said mtable for said apparent interface, said separate pointer and said table structure allowing for more efficient handling of the invocation of operation on said object with said plurality of inherited interfaces; an identifier field including identifier information for said mtable contained within said mtable; a first count field identifying a numerical count of said plurality of pointers to functions contained within said mtable; a second count field identifying a numerical count of said plurality of pointers to additional mtables contained within said table; a pointer to data for said object, said pointer being part of an object reference, said data for said object being separate from said object reference; a pointer to said mtable for said object, said pointer being part of said object reference, said pointer to said data and said pointer to said mtable facilitated by said object reference using separate pointers; circuitry invoking a plurality of operations on said data and said plurality of mtables pointed to by said object reference; and a compiler for generating said plurality of mtables.
Claim 18
Dependent Claim 277 words
A computer system for invocation of operations on objects with interface inheritance in an object oriented programming environment on a data processor containing memory, in which a plurality of objects are categorized into classes according to related operations, said system comprising: a plurality of mtables, one being for an apparent interface for an object, the mtables having a table structure including an identifier of said interface, a plurality of pointers to functions for said interface, and a plurality of pointers to additional mtables, said additional mtables being for a plurality of inherited interfaces of said object and having the same table structure as said mtable for said apparent interface, said separate pointer and said table structure allowing for more efficient handling of the invocation of operation on said object with said plurality of inherited interfaces; an identifier field including identifier information for said mtable contained within said mtable; a first count field identifying a numerical count of said plurality of pointers to functions contained within said mtable; a second count field identifying a numerical count of said plurality of pointers to additional mtables contained within said table; a pointer to data for said object, said pointer being part of an object reference, said data for said object being separate from said object reference; a pointer to said mtable for said object, said pointer being part of said object reference, said pointer to said data and said pointer to said mtable facilitated by said object reference using separate pointers; circuitry invoking a plurality of operations on said data and said plurality of mtables pointed to by said object reference; and a compiler for generating said plurality of mtables.
Claim 19
Dependent Claim 22 words
The computer system of claim 15 , further comprising a representation of the collection of mtables for said operations on said object.
Claim 20
Dependent Claim 15 words
The computer system of claim 15 wherein said functions implement operations declared in said interfaces.
Claim 21
Dependent Claim 35 words
The computer system of claim 15 , further comprising a representation of mtables, one mtable per class of object, said mtables having pointers to said operations, and pointers to mtables, said pointers representing interface inheritance.
Claim 22
Dependent Claim 22 words
The computer system of claim 18 , further comprising a representation of the separate graphs of mtables for different implementations of operations.
Claim 23
Dependent Claim 23 words
The computer system of claim 18 , further comprising shared mtables, said shared mtables shared among classes for a common implementation of operations.
Claim 24
Dependent Claim 35 words
The computer system of claim 20 , wherein said shared mtables are shared when said implementations are remote procedure call stubs in a distributed object-oriented system using an interface definition language which supports interface inheritance.

References Cited (Backward Citations)

US5339438A Cited
US5327562A Cited
US5768588A Cited
US5566302A Cited
US5442793A Cited
US5794038A Cited
US5600838A Cited
US5884316A Cited
US5794041A Cited
US5907707A Cited
US6044380A Cited

USPTO Annuity & Maintenance Windows

Annuity Stage Window Opens Payment Deadline Surcharge Period Until Estimated Fee Status
3.5 Years (Year 4) 2005-06-24 2005-12-24 2006-06-25 $2000.00 Window Closed / Lapsed
7.5 Years (Year 8) 2009-06-24 2009-12-24 2010-06-25 $3760.00 Window Closed / Lapsed
11.5 Years (Year 12) 2013-06-24 2013-12-24 2014-06-25 $7700.00 Window Closed / Lapsed

Assigned Categories & Tags

No categories assigned to this patent yet.

Assign Category Tag