Method and apparatus for partial just in time compiling in a...

Data processing: software development – installation – and managem – Software program development tool – Translation of code

Reexamination Certificate

Rate now

  [ 0.00 ] – not rated yet Voters 0   Comments 0

Details

C717S152000, C717S152000

Reexamination Certificate

active

06295642

ABSTRACT:

BACKGROUND OF THE INVENTION
1. Technical Field
The present invention relates generally to an improved data processing system and in particular to a method and apparatus for processing instructions in a data processing system. Still more particularly, the present invention relates to a method and apparatus for partially Just In Time compiling instructions in a data processing system.
2. Description of Related Art
Java is an object oriented programming language and environment focusing on defining data as objects and the methods that may be applied to those objects. “Java” is a trademark of Sun Microsystems, Inc. Java supports only a single inheritance, meaning that each class can inherit from only one other class at any given time. Java also allows for the creation of totally abstract classes known as interfaces, which allow the defining of methods that may be shared with several classes without regard for how other classes are handling the methods. Java provides a mechanism to distribute software to different computing platforms.
Java is able to support applications for many types of data processing systems, which may contain a variety of central processing units and operating system architectures. The Java Virtual Machine (JVM) is a virtual computer component that resides only in memory. The JVM allows Java programs to be executed on different platforms as opposed to only the one platform for which the code was compiled. Java programs are compiled for the JVM. In this manner Java is able to support applications for many types of data processing systems, which may contain a variety of central processing units and operating systems architectures. To enable a Java application to execute on different types of data processing systems, a compiler typically generates an architecture-neutral file format. The compiled code is executable on many processors, given the presence of the Java runtime system. The Java compiler generates bytecode instructions that are nonspecific to particular computer architectures. A bytecode is a machine independent code generated by the Java compiler and executed by a Java interpreter. A Java interpreter is a module in the JVM that alternatively decodes and executes a bytecode or bytecodes. These bytecode instructions are designed to be easy to interpret on any machine and easily translated on the fly into native machine code.
A development environment, such as the Java Development Kit (JDK) available from Sun Microsystems, Inc., may be used to build Java bytecode from Java language source code and libraries. This Java bytecode may be stored as a Java application or applet on a Web Server, where it can be downloaded over a network to a user's machine and executed on a local JVM.
When extra speed in executing a Java program is needed, a Just In Time (JIT) compiler may be used to translate bytecodes for a method or class into native machine instructions before executing them. Typically, this compilation only occurs once per method. Some JIT compilers may compile entire classes, rather than one method at a time.
Just In Time compilation of Java methods may provide significant performance boosts to Java programs. This benefit, however, comes at the cost of increased storage utilization and significant compile time.
Therefore, it would be advantageous to have an improved method and apparatus for Just In Time compiling, also referred to as JITing, of Java methods that would reduce the storage use and compile time.
SUMMARY OF THE INVENTION
The present invention provides a method and apparatus for just in time compilation of Java bytecode methods and provides a means to compile only the paths that are actually executed. An iterative process is employed whereby bytecodes are compiled up to the next conditional flow bytecode or return, the compiled code is executed and any attempt to enter uncompiled paths of the method is monitored. When an attempt is made to execute an uncompiled path control is returned to the compiler and the process is repeated starting with the first bytecode of that path. The process continues until all paths have been compiled or until it is deemed likely that all of the most commonly executed paths have been compiled. At that point, final optimizations and housekeeping are performed.


REFERENCES:
patent: 5768593 (1998-06-01), Walters et al.
patent: 5848274 (1998-12-01), Hamby et al.
patent: 6139199 (1999-10-01), Rodriguez
patent: 6170083 (2001-01-01), Adl-Tabatabai
Franz et al., “Slim binaries”, Comm. of the ACM, ACM, Dec. 1997, pp. 87-94.*
Thompson, “Java on 1A-64”, Performance Computing, Oct. 1998, pp. 41-47.*
Liband, “Compiler analysis,:Critical step for optimizing embedded code”, Electronic Engineering times, Apr. 5, 1999, pp. 88-98.*
Hsieh et al., “A study of the cache and branch performance issues with running Java on current hardware platforms”, IEEE, 1997, pp. 211-216.*
Lambright, “Java bytecode optimizations”, IEEE, 1997, pp. 206-210.*
Ciernak et al., “Briki: An optimizing Java compiler”, IEEE, 1997, pp. 179-184.*
Krall, “Efficient Java VM Just-in-Time compilation”, IEEE, 1998, pp. 205-212.

LandOfFree

Say what you really think

Search LandOfFree.com for the USA inventors and patents. Rate them and share your experience with other people.

Rating

Method and apparatus for partial just in time compiling in a... does not yet have a rating. At this time, there are no reviews or comments for this patent.

If you have personal experience with Method and apparatus for partial just in time compiling in a..., we encourage you to share that experience with our LandOfFree.com community. Your opinion is very important and Method and apparatus for partial just in time compiling in a... will most certainly appreciate the feedback.

Rate now

     

Profile ID: LFUS-PAI-O-2535068

  Search
All data on this website is collected from public sources. Our data reflects the most accurate information available at the time of publication.