IP Library Granted Patent US 7,093,263
Granted Patent B1
US 7,093,263 · App. 09/512,621 · Granted Aug 15, 2006

System and methodology for supporting a platform independent object format for a run-time environment

View Patent ↗
Loading inventors, assignments & file history…
Monitor This Case
Get email alerts when status or documents change.
Order Certified Copies
Most orders are placed with the USPTO same day — all within 24 business hours.
Order via The Patent Place →
Pre-filled with this patent's details
Quick Facts
Patent No.
US 7,093,263
App. No.
09/512,621
Granted
Aug 15, 2006
Kind
B1
Abstract

A computer-implemented method and software are provided for supporting a platform independent object format for a run-time environment in which a definition of an object in terms of a composition of one or more primitive types and a platform-specific description of the one or more primitive types are accessed. A layout for the object is then generated in a high-order language based on the definition of the object and the platform-specific description.

Claims (56)

1. A method for supporting a platform independent object format for a run-time environment, comprising the computer-implemented steps of:

accessing a definition of an object in terms of a composition of one or more primitive types;

accessing a platform-specific description of size and alignment of the one or more primitive types; and

generating a layout for the object in a high-order language based on the definition of the object and the size and alignment of the one or more primitive types.

2. The method according to claim 1 , further comprising the step of generating instructions for an accessor operation to access a slot in the object holding a value for one of the one or more primitive types.

3. The method according to claim 1 , further comprising the step of generating instructions for a get operation to fetch a value for one of the one or more primitive types from a slot in the object.

4. The method according to claim 1 , further comprising the step of generating instructions for a set operation to store a value for one of the one or more primitive types from a slot in the object.

5. The method according to claim 1 , wherein the one or more primitive types includes one or more of the following types: integer, floating point, and reference.

6. The method according to claim 5 , wherein the primitive reference type is one of a native machine pointer type and a numeric reference type.

7. A method for supporting an object format for a plurality of incompatible platforms for a run-time environment, comprising the computer-implemented steps of:

accessing a definition of an object as a plurality of slots containing a primitive type;

accessing a plurality of platform-specific descriptions of layout parameters of the one or more primitive types, said platform-specific descriptions corresponding respectively to the incompatible platforms; and

generating a plurality of layouts, corresponding respectively to the incompatible platforms, for the object in a high-order language based on the definition of the object and the platform-specific descriptions.

8. The method according to claim 7 , where the slots are located in the layouts for the incompatible platforms, when compiled by a corresponding platform-specific compiler, at same offsets.

9. A computer-readable storage medium bearing instructions for supporting a platform independent object format for a run-time environment, said instructions being arranged to cause one or more processors upon execution thereby to perform the steps of:

accessing a definition of an object in terms of a composition of one or more primitive types;

accessing a platform-specific description of size and alignment of the one or more primitive types; and

generating a layout for the object in a high-order language based on the definition of the object and the size and alignment of the one or more primitive types.

10. The computer-readable storage medium according to claim 9 , wherein said instructions are further arranged for performing the step of generating instructions for an accessor operation to access a slot in the object holding a value for one of the one or more primitive types.

11. The computer-readable storage medium according to claim 9 , wherein said instructions are further arranged for performing the step of generating instructions for a get operation to fetch a value for one of the one or more primitive types from a slot in the object.

12. The computer-readable storage medium according to claim 9 , wherein said instructions are further arranged for performing the step of generating instructions for a set operation to store a value for one of the one or more primitive types from a slot in the object.

13. The computer-readable storage medium according to claim 9 , wherein the one or more primitive types includes one or more of the following types: integer, floating point, and reference.

14. The computer-readable storage medium according to claim 13 , wherein the primitive reference type is one of a native machine pointer type and a numeric reference type.

15. A computer-readable storage medium bearing instructions for supporting an object format for a plurality of incompatible platforms for a run-time environment, said instructions being arranged to cause one or more processors upon execution thereby to perform the steps of:

accessing a definition of an object as a plurality of slots containing a primitive type;

accessing a plurality of platform-specific descriptions of layout parameters of the one or more primitive types, said platform-specific descriptions corresponding respectively to the incompatible platforms; and

generating a plurality of layouts, corresponding respectively to the incompatible platforms, for the object in a high-order language based on the definition of the object and the platform-specific descriptions.

16. The computer-readable storage medium according to claim 15 , wherein the slots are located in the layouts for the incompatible platforms, when compiled by a corresponding platform-specific compiler, at same offsets.

17. The method according to claim 8 , wherein:

one of the platform-specific descriptions corresponding to one of the incompatible platforms specifies that the primitive type has a first size;

another of the platform-specific descriptions corresponding to another of the incompatible platforms specifies that the primitive type has a second size greater than the first size; and

said generating the layouts includes:

generating one of the layouts corresponding to said one of the incompatible platforms;

generating another of the layouts corresponding to said another of the incompatible platforms; and

generating a padding element in said one of the layouts.

18. The computer-readable storage medium according to claim 16 , wherein:

one of the platform-specific descriptions corresponding to one of the incompatible platforms specifies that the primitive type has a first size; and

another of the platform-specific descriptions corresponding to another of the incompatible platforms specifies that the primitive type has a second size greater than the first size; and

said generating the layouts includes:

generating one of the layouts corresponding to said one of the incompatible platforms;

generating another of the layouts corresponding to said another of the incompatible platforms; and

generating a padding element in said one of the layouts.

19. A method for supporting an object format for a run-time environment, comprising the computer-implemented steps of:

accessing a definition of an object as including at least one slot containing a primitive type;

accessing a first layout description for the primitive type corresponding to a first platform;

generating a first layout for the slot of the object in a high-order language based on the definition of the object and the first layout description; and

accessing a second layout description for the primitive type corresponding to a second platform; and

generating a second layout for the slot of the object in a high-order language based on the definition of the object and the first layout description;

wherein the first layout for the slot and the second layout for the slot have a same size when compiled by a first compiler of the high-order language on the first platform and a second compiler of the high-order language on the second platform; and

the first layout for the slot of the object in the high-order language includes a padding element and the second layout for the slot of the object in the high-order language does not include the padding element.

20. The method according to claim 19 , wherein:

the first layout description for the primitive type specifies a first size for the primitive type; and

the second layout description for the primitive specifies a second size for the primitive type greater than the first size.

21. The method according to claim 19 , wherein:

the first layout description for the primitive type specifies a first alignment restriction for the primitive type; and

the second layout description for the primitive specifies a second alignment restriction for the primitive type stricter than the first alignment restriction.

Assignments (2)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Dec 4, 2003
From: ORACLE CORPORATION
To: ORACLE INTERNATIONAL CORPORATION (OIC)
Reel/Frame 014725/0372 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jun 20, 2000
From: SEXTON, HARLAN; UNIETIS, DAVID; JUNGERMAN, MARK; MEYER, SCOTT; ROSENBERG, DAVID
To: ORACLE CORPORATION
Reel/Frame 010935/0515 →