Data processing: software development – installation – and managem – Software program development tool – Translation of code
Reexamination Certificate
1999-03-09
2001-12-18
Chaki, Kakali (Department: 2122)
Data processing: software development, installation, and managem
Software program development tool
Translation of code
C717S152000, C717S152000
Reexamination Certificate
active
06332216
ABSTRACT:
BACKGROUND OF THE INVENTION
1. Field of Invention
The present invention pertains to the field of processing systems. More particularly, this invention relates to a hybrid just-in-time compiler that consumes minimal resources.
2. Art Background
Computer systems and devices having embedded processing resources typically conform to one of a variety of differing architectures. Each architecture is usually defined by a particular instruction set, hardware register set, and memory arrangement, etc. An architecture may also be referred to as a hardware platform for software execution. Software such as application programs which are written or compiled to be executed on a particular hardware platform may be referred to as native code. An application program in the native code of a particular hardware platform usually does not run on other non compatible hardware platforms.
Some software environments enable application programs to execute on a variety of differing hardware platforms. The application programs which execute under such a software environment usually take the form of a stream of instructions each of which conforms to a predefined instruction set supported by the software environment. Such a software environment typically interprets each of the instructions in the stream and provides emulation of the instructions in the native code of the particular hardware platform. The software environment itself may take the form of a virtual machine which executes in native code.
One example of such a software environment is a Java virtual machine. A typical Java virtual machine functions as an interpreter for Java application programs. A Java application program typically take the form of a stream of Java byte code instructions and the Java virtual machine emulates each Java byte code instruction using the native code of the particular hardware platform under which the Java virtual machine executes. Unfortunately, this type of emulation usually yields severely reduced instruction execution performance in comparison to application programs which are in native code.
One prior method for improving the instruction execution performance in such a software environment is to provide the software environment with what may be referred to as a just-in-time compiler. A typical just-in-time compiler is a process that compiles an application program into native code. A just-in-time compiler may execute concurrently or sequentially with the virtual machine process that interprets the application program. A just-in-time compiler typically generates a native code version of an application program which is thereafter available for execution if the application program is subsequently run. Unfortunately, prior just-in-time compilers typically consume large amounts of resources such as memory and processor cycles and are therefore not well suited for devices having relatively limited resources.
SUMMARY OF THE INVENTION
A virtual machine with a hybrid just-in-time compiler is disclosed that enables execution of a set of cross-platform code on a hardware platform. In contrast to prior just-in-time compilers, the just-in-time compiler disclosed herein consumes relatively few resources of the hardware platform by compiling only selected basic blocks of the cross-platform code and by making use of existing elements in the virtual machine that are otherwise used to interpret the cross-platform code. The just-in-time compiler is hybrid in that only selected basic blocks of the cross-platform code are compiled while the remaining portions are interpreted.
In one embodiment, the virtual machine with a hybrid just-in-time compiler includes a code generator that compiles a selected basic block of the cross-platform code into a native code block for the hardware platform. The virtual machine in this embodiment further includes an interpreter that executes the cross-platform code by executing the native code block in place of the selected basic block and by interpreting a remaining portion of the cross-platform code. An existing action table used by the interpreter is also used by code generator to compile the native code block.
Other features and advantages of the present invention will be apparent from the detailed description that follows.
REFERENCES:
patent: 5367685 (1994-11-01), Gosling
patent: 5583983 (1996-12-01), Schmitter
patent: 5768593 (1998-06-01), Walters et al.
patent: 5933144 (1999-08-01), Alcorn
patent: 5974256 (1999-10-01), Matthews et al.
patent: 6003050 (1999-12-01), Silver et al.
patent: 6066181 (2000-05-01), Demaster
patent: 6075942 (2000-06-01), Cartwright, Jr.
patent: 6081665 (2000-06-01), Nilsen et al.
patent: 6110226 (2000-08-01), Bother
patent: 6128011 (2000-10-01), Peng
patent: 6139199 (2000-10-01), Rodriguez
patent: 6141794 (2000-10-01), Dice et al.
patent: 6151703 (2000-11-01), Crelier
patent: 6158048 (2000-12-01), Luch et al.
patent: 6170083 (2001-01-01), Adl Tabatabai
patent: 6205578 (2001-03-01), Grove
patent: 6237135 (2001-05-01), Timbol
Gough, “Parameter passing for a Java virtual machine”, IEEE, pp 1-7, 1999.*
Hua et al, “Platform independence issues in compiling java bytecode to native code”, IEEE, pp 530-532, Feb. 2000.*
Weimin et al, “A java virtual machine design based on hybrid concurrent compilation model”, IEEE, pp 18-23, Aug. 2000.*
Newhall et al, “Performance measurement of dynamically compiled java execution”, ACM JAVA, pp 42-50, May 1999.*
Benton et al., “Compling standard ML to Java bytecodes”, ACM ICFP, pp 129-140, Apr. 1998.*
Ishizaki et al, “Design, implemenation and eveluation of optimizations in a Just in time compiler”, ACM Java, pp 119-128, May 1999.*
Maassen et al., “An efficient implemenation of Java remote method invocation”, PPoPP ACM, pp 173-182, Mar. 1999.*
Azevedo et al., “Java annotation awarw just in time (AJIT) compilation system”, ACM Java, pp 142-151, May 1999.
Chaki Kakali
Hewlett--Packard Company
Khatri Anil
LandOfFree
Hybrid just-in-time compiler that consumes minimal resource does not yet have a rating. At this time, there are no reviews or comments for this patent.
If you have personal experience with Hybrid just-in-time compiler that consumes minimal resource, we encourage you to share that experience with our LandOfFree.com community. Your opinion is very important and Hybrid just-in-time compiler that consumes minimal resource will most certainly appreciate the feedback.
Profile ID: LFUS-PAI-O-2590736