Development system with methods for just-in-time compilation of programs
Patent 6151703 Issued on November 21, 2000. Estimated Expiration Date: May 20, 2016. Estimated Expiration Date is calculated based on simple USPTO term provisions. It does not account for terminal disclaimers, term adjustments, failure to pay maintenance fees, or other factors which might affect the term of a patent.
A development system having a client which employs a virtual machine for executing programs written in the Java programming language is described. The client executes a "compiled" (i.e., bytecode or pseudo-compiled) Java program, which has been created by compiling a Java source code program or script with a Java compiler. The pseudo-compiled program comprises the bytecode emitted by the compiler. The development system further includes a just-in-time compiler which natively compiles each pseudo-compiled method of a Java program on a "just-in-time" basis--that is, compiles each method as it is actually used into native machine code for a target microprocessor. Methods which are unused are left uncompiled (i.e., left as bytecode). During program execution, when a method call is made from interpreted code, the system employs an "invoker" slot of the callee. When a method call is made from compiled code, the system employs a "compiled code" slot of the callee. As the addresses for the slots themselves remain unchanged, a method which has been compiled need not be recompiled when a callee method it invokes is itself compiled. In this manner, a method (caller) calling another method (callee) need not know whether it is calling is an interpreted method or a compiled method.
Other References
Gosling, J., and McGilton, H., The Java Environment: A White Paper, Sun Microsystems, Inc., Oct. 1995
JAVA: The First 800 Days, Sun Microsystems Inc website http://java.sun.com/events/jibe/timeline.html, Jun. 3, 2000
JAVA On Solaris 2.6 A White Paper, Sun Microsystems Inc., 1997
JAVA JIT Compiler Overview Sun Microsystems Inc. http://www.sun.com/solaris/jit, Jun. 21, 2000
Design and Implementation of Pep, a JAVA Just-In-Time Translator, O Agesen, Theory and Practice of Object Systems v2, No. 2 pp. 127-155, 1997
"Vlatte: A JAVA VM Just-In-Time Scheduling Compiler" Mass Laboratory, Seoul National University, http://latte.snu.ac.kr/vlatte, Jun. 20, 2000
Latte: A Fast and Efficient Java VM Just-in-Time Compiler, Mass Laboratory, Seoul National University, http://latte.snu.ac.kr, Jun. 20, 2000
Welcome to Micro-Architecture and System Software Laboratory Mass Laboratory, Seoul National University, http://altair.snu.ac.kr/, Jun. 20, 2000
Electrical Fire A Compiler for the JAVA platform, mozilla.org wysiwyg://26/http://www.mozilla.org/projects/ef/, Jun. 20, 2000
"Java Code Brews For Embedded Apps", Sreeram Duvuurru Electronic Engineering Times n 932, p. 70, Dec. 16, 1996
Borland Announces Availability of Borland CH Development Suite 5.0 Business Wire, Mar.26, 1996
JAVA Unleased, Michael Morrison et al. Macmillan Computer Pub, ISBN 1575210495, Apr. 12, 1996
SPiCE: A System for Translating Smalltalk Programs Into a C Environment, IEEE Transactions on Software Engineering V21 No. 11, Nov. 1996
Brihi: an Optimizing Java Compiler, M. Cierniak et al, University of Rochester, IEEE, 1997
Object Share Company Press Release, Visual Works 5i http://www/objectshare.com, Jun. 19, 2000
Compiling JAVA Just In Time, IEEE Micro pp. 36-43, T. Cramer et al., 1997
The JAVA Hotspot Performance Engine Architecture p. 1-13 http://java.sun.com/products/hotspot/whitepaper.html, Apr. 1999
CS265 "Expert " p.: Just In Time Compilers, Matt Welsh, UC Berkeley, http://www.CS.berkeley.edu/~mdw/class/cs265/, Feb. 14, 2000
Not Just Making Smalltalk--Parcplare will move beyond signature products with plug in support for Alternative Technology p. 83 Computer Tech., May 27, 1996
Parc Place Thraws In Smalltalk Towel; Heads For Java, Network Briefing, Jul. 23, 1997
Hot Spot At Center of Sun Java Plans, Electronic News Jim De Tar, Sep. 1, 1997
Analysis and Compilation of Object Oriented Languages, http://www.csd.uv.se/~thomas/wpo/oo-compilation-papers.html, Jun. 21, 2000