IP Library Granted Patent US 6,948,156
Granted Patent B2
US 6,948,156 · App. 09/999,519 · Granted Sep 20, 2005

Type checking in java computing environments

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 6,948,156
App. No.
09/999,519
Granted
Sep 20, 2005
Kind
B2
Abstract

Techniques for checking in JAVA™ computing environments are disclosed. The techniques can be used by a JAVA™ virtual machine to efficiently perform type checking. A JAVA™ class hierarchy which represents the hierarchical relationship of parent classes of JAVA™ class can be implemented as an array of class references. The array of class references can be used to efficiently perform type checking in JAVA™ computing environments. As a result, the performance of JAVA™ virtual machines, especially those operating with limited resources, is significantly enhanced.

Claims (51)

1. A method of type checking class types by a virtual machine, said method comprising:

generating, at load time, when a first class is loaded into the virtual machine, a class hierarchy for said first class, wherein said class hierarchy represents all parent classes of said first class in a hierarchical parent to child relationship, and wherein said class hierarchy is arranged as a first array of parent references to consecutive parents of said first class organized in accordance with said hierarchical relationship;

loading, at load time, said class hierarchy in a first internal class representation of said first class inside said virtual machine, thereby enabling all parents of said first class to be determined without referencing another internal class representation of the parent classes;

receiving, by said virtual machine, at runtime after said internal class representation has been loaded inside said virtual machine, a first and a second reference, wherein said first and second references respectively reference said first and a second class;

finding, by said virtual machine at runtime, said first internal class representation for said first class;

reading said class hierarchy in said first internal class representation; and

determining whether said second class is represented in said class hierarchy by accessing said first array of parent references.

2. A method as recited in claim 1 , wherein said virtual machine is implemented in an embedded system.

3. A method as recited in claim 1 , wherein said method further comprises:

returning a first value when said determining determines that said second class is represented in said class hierarchy by accessing said first array of parent references; and

returning a second value when said determining determines that said second class is not represented in said class hierarchy by accessing said first array of parent references.

4. A method as recited in claim 1 , wherein said accessing of said first array comprises:

updating an index of said first array; and

accessing said array with said updated index.

5. A method as recited in claim 1 , wherein said first class is associated with a platform independent programming language.

6. A method as recited in claim 1 , wherein said method further comprises:

determining whether said second class is represented in said class hierarchy by indexing an element in said first array of parent reference; and

repeating said determining of whether said second class is represented in said class hierarchy by indexing another element in said first array of parent reference.

7. A computer system including at least one processor for type checking class types, wherein said computer system performs:

generating, at load time, when a first class is loaded into said virtual machine, a class hierarchy for said first class, wherein said class hierarchy represents all parent classes of said first class in a hierarchical parent to child relationship, and wherein said class hierarchy is arranged as a first array of parent references to consecutive parents of said first class organized in accordance with said hierarchical relationship;

loading, at load time, said class hierarchy in a first internal class representation of said first class inside said virtual machine, thereby enabling all parents of said first class to be determined without referencing another internal class representation of the parent classes;

receiving at runtime after said internal class representation has been loaded inside said virtual machine, a first and a second reference, said first and second references respectively reference wherein said first and a second class;

finding at runtime, said first internal class representation for said first class;

reading said first class hierarchy in said first internal class representation; and

determining whether said second class is represented in said class hierarchy by accessing said first array of parent references.

8. A computer system as recited in claim 7 , wherein said virtual machine is implemented in an embedded system.

9. A computer system as recited in claim 7 , wherein said computer system further performs:

returning a first value when said determining determines that said second class is represented in said class hierarchy by accessing said first array of parent references in said first class hierarchy; and

returning a second value when said determining determines that said second class is not represented in said class hierarchy by accessing said first array of parent references.

10. A computer system as recited in claim 7 , wherein said accessing of said first array comprises:

updating an index of said first array; and

accessing said array with said updated index.

11. A computer system as recited in claim 7 , wherein said first class is associated with a platform independent programming language.

12. A computer system as recited in claim 7 , wherein said computer system further performs:

determining whether said second class is represented in said class hierarchy by indexing an element in said first array of parent references; and

repeating said determining of whether said second class is represented in said class hierarchy by indexing another element in said first array of parent references.

13. A computer readable medium including computer program code for type checking class types, comprising:

computer program code for generating, at load time, when a first class is loaded into said virtual machine, a class hierarchy for said first class, wherein said class hierarchy represents all parent classes of said first class in a hierarchical parent to child relationship, and wherein said class hierarchy is arranged as a first array of parent references to consecutive parents of said first class organized in accordance with said hierarchical relationship;

computer program code for loading, at load time, said class hierarchy in a first internal class representation of said first class inside said virtual machine, thereby enabling all parents of said first class to be determined without referencing another internal class representation of the parent classes;

computer program code for receiving at runtime after said internal class representation has been loaded inside said virtual machine, a first and a second reference, wherein said first and second references respectively reference said first and a second class;

computer program code for finding at runtime, said first internal class representation for said first class;

computer program code for reading said class hierarchy in said first internal class representation; and

computer program code for determining whether said second class is represented in said class hierarchy by accessing said first array of parent references.

14. A computer readable medium as recited in claim 13 , wherein said virtual machine is implemented in an embedded system.

15. A computer readable medium as recited in claim 13 , wherein said computer program code further comprises:

returning a first value when said determining determines that said second class is represented in said class hierarchy by accessing said first array of parent references; and

returning a second value when said determining determines that said second class is not represented in said class hierarchy by accessing said first array of parent references.

16. A computer readable medium as recited in claim 13 , wherein said accessing of said first array comprises:

updating an index of said first array; and

accessing said array with said updated index.

17. A computer readable medium as recited in claim 13 , wherein said first class is associated with a platform independent programming language.

Assignments (2)
MERGER AND CHANGE OF NAME Recorded Dec 14, 2015
From: ORACLE USA, INC.; SUN MICROSYSTEMS, INC.; ORACLE AMERICA, INC.
To: ORACLE AMERICA, INC.
Reel/Frame 037280/0132 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Oct 24, 2001
From: SOKOLOV, STEPAN
To: SUN MICROSYSTEMS, INC.
Reel/Frame 012348/0323 →