Method and apparatus automatic service of JIT compiler...

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

Reexamination Certificate

active

06321377

ABSTRACT:

CROSS REFERENCE TO RELATED APPLICATIONS
The present invention is related to applications entitled A Method And Apparatus To Coordinate And Control The Simultaneous Use Of Multiple Just In Time Compilers With A Java Virtual Machine, Ser. No. 09/204,513, now U.S. Pat. No. 6,233,735; A Method And Apparatus To Selectively Control Processing Of A Method In A Java Virtual Machine, Ser. No. 09/204,512; Method And Apparatus For Dynamically Selecting Bytecodes For Just In Time Compiling In A User's Environment, Ser. No. 09/204,976; A Method And Apparatus For Dynamic Selection Of Which Bytecodes Should Be Just In Time Compiled, Ser. No. 09/204,519; JIT/Compiler Java Language Extensions To Enable Field Performance and Serviceability, Ser. No. 09/204,968; A Method And Apparatus To Selectively Control Processing Of A Method In A Java Virtual Machine, Ser. No. 09/204,975: and Method And Apparatus For Dynamic Selection Of Instructions For Compiling Using Tags, Ser. No. 09/204,516, all of which are filed even date hereof, assigned to the same assignee, and incorporated herein by reference.
BACKGROUND OF THE INVENTION
1. Technical Field
The present invention relates to an improved data processing system and in particular to a method and apparatus for servicing exceptions occurring in a data processing system. Still more particularly, the present invention provides a method and apparatus for servicing just in time compiler generated errors.
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 designed to solve a number of problems in modern programming practice. 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 run time system. The Java compiler generates bytecode instructions that are non-specific to a particular computer architecture. A bytecode is a machine independent code generated by the Java compiler and executed by a Java interpreter. A Java interpreter is a module that alternately decodes and executes a bytecode. The decoding of the bytecode places the instruction into an executable form for the computer on which the code is to be executed. Then, the instruction is executed by the computer. These bytecode instructions are designed to be easy to interpret on any machine and easily translated on the fly into native machine code.
The Java virtual machine (JVM) is a virtual computer component that resides only in memory. A JVM includes components necessary to run a program on a computer, including an interpreter. 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 run time system. The Java compiler generates bytecode instructions that are non-specific to a particular computer architecture. A bytecode is a machine independent code generated by the Java compiler and executed by a Java interpreter.
When extra speed in executing a Java program or applet 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.
In some situations, a JIT compiler may produce invalid results when compiling bytecodes from a given method of a class into instructions or machine code for execution on the computer. These errors do not occur if the code is not just in time compiled. Typically, these errors in execution of native instructions occur as a result of faulty logic in the JIT compiler. Traditionally, this type of error may be addressed by changing the bytecodes to avoid the problem. In many cases, such a fix is not possible or reasonable. Another approach to this problem is to make changes to the JIT compiler itself. Typically, such changes may be slow or infrequent. A third alternative is to disable the JIT compiler, which may result in performance costs for methods that would be JITed and not cause errors or exceptions. Currently, a mechanism for avoiding these errors is unavailable.
Therefore, it would be advantageous to have an improved method and apparatus for servicing errors or exceptions generated by a JIT compiler.
SUMMARY OF THE INVENTION
The present invention provides a method and apparatus in a data processing system for handling exceptions generated during an execution of instructions. An exception is detected, wherein the exception results from the execution of the instructions, wherein the exception has a location within the instructions. A determination is made as to whether the exception has occurred in a compiled portion of the instructions. Responsive to a determination that the exception has occurred in a compiled portion of the instructions, an identification of the compiled portion of the instructions is added to a data structure.


REFERENCES:
patent: 5784553 (1998-07-01), Kolawa et al.
patent: 5901308 (1999-05-01), Cohen et al.
patent: 5920720 (1999-07-01), Toutonghi et al.
patent: 5937193 (1999-08-01), Evoy
patent: 6026485 (2000-02-01), O'Connor et al.
Dony. Exception Handling and Object-Oriented Programming: Towards a Synthesis. ACM. pp. 322-330. Oct. 1990.*
Sinha et al. Analysis of Programs with Exception-Handling Constructs. IEEE. pp. 348-357. Nov. 1998.

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 automatic service of JIT compiler... 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 automatic service of JIT compiler..., we encourage you to share that experience with our LandOfFree.com community. Your opinion is very important and Method and apparatus automatic service of JIT compiler... will most certainly appreciate the feedback.

Rate now

     

Profile ID: LFUS-PAI-O-2616283

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