U.S. patents available from 1976 to present.
U.S. patent applications available from 2005 to present.

Method for compiling program components in a mixed static and dynamic environment

Patent 6973646 Issued on December 6, 2005. Estimated Expiration Date: Icon_subject July 21, 2020. 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.

Patent References

Method and apparatus for dynamically deoptimizing compiled activations
Patent #: 5933635
Issued on: 08/03/1999
Inventor: Holzle, et al.

Development system with improved methods for recompiling dependent code modules
Patent #: 5978585
Issued on: 11/02/1999
Inventor: Crelier

Method and apparatus for improving compiler performance during subsequent compilations of a source program
Patent #: 6078744
Issued on: 06/20/2000
Inventor: Wolczko, et al.

Java development environment using optimizing ahead-of-time compiler
Patent #: 6110226
Issued on: 08/29/2000
Inventor: Bothner

Development system with methods for just-in-time compilation of programs
Patent #: 6151703
Issued on: 11/21/2000
Inventor: Crelier

Secure and reliable bootstrap architecture
Patent #: 6185678
Issued on: 02/06/2001
Inventor: Arbaugh, et al.

Method and apparatus for performing byte-code optimization during pauses
Patent #: 6240548
Issued on: 05/29/2001
Inventor: Holzle, et al.

Method for discovering and registering agents in a distributed network
Patent #: 6269400
Issued on: 07/31/2001
Inventor: Douglas, et al.

Method for optimizing Java performance using precompiled code
Patent #: 6289506
Issued on: 09/11/2001
Inventor: Kwong, et al.

Method and apparatus for selecting ways to compile at runtime
Patent #: 6298477
Issued on: 10/02/2001
Inventor: Kessler

More ...

Inventors

Application

No. 09621571 filed on 07/21/2000

US Classes:

717/146, Including intermediate code717/140, Compiling code717/145, Including recompilation717/152, Static (source or intermediate level)713/168, Particular communication authentication technique717/151, Optimization717/153, Dynamic (i.e., machine or object level)717/136, Translation of code713/2, Loading initialization program (e.g., booting, rebooting, warm booting, remote booting, BIOS, initial program load (IPL), bootstrapping)717/148, Just-in-time compiling or dynamic compiling (e.g., compiling Java bytecode on a virtual machine)717/141, Analysis of code form717/170, Plural version management713/176, Authentication by digital signature representation or digital watermark707/103RObject-oriented database structure

Examiners

Primary: Dam, Tuan Q.
Assistant: Steelman, Mary

Attorney, Agent or Firm

International Class

G06F009/45

Abstract

This invention describes a method and several variants for compiling programs or components of programs in a mixed static and dynamic environment, so as to reduce the amount of time and memory spent in run-time compilation, or to exercise greater control over testing of the executable code for the program, or both. The invention involves generating persistent code images prior to program execution based on static compilation or dynamic compilation from a previous run, and then, adapting those images during program execution. We describe a method for generating auxiliary information in addition to the executable code that is recorded in the persistent code image. Further, we describe a method for checking the validity of those code images, adapting those images to the new execution context, and generating new executable code to respond to dynamic events, during program execution. Our method allows global interprocedural optimizations to be performed on the program, even if the programming language supports, or requires, dynamic binding. Variants of the method show how one or several of the features of the method may be performed. The invention is particularly useful in the context of implementing Java Virtual Machines, although it can also be used in implementing other programming languages.

Other References

  • Adams, Rolf, Tichy, Walter, and Weinert, Annette, “The Cost of Selective Recompilation and Environment Processing”, p. 3-28 1994, retrieved from ACM Portal database Feb. 5, 2003.
  • Cierniak, Michal, Lueh, Guei-Yuan, Stichnoth, James M., “Practicing JUDO: JavaTM Under Dynamic Optimizations”, p. 13-26, May 2000, retrieved from ACM Portal database Feb. 5, 2003.
  • Drossopoulou, Shophia, Eisenbach, Susan, and Wragg, David, “A Fragment Calculus-towards a model of Separate Compilatio Linking and Binary Compatibility”, 1999, retrieved from IEEE dtabase Feb. 5, 2003.
PatentsPlus Images
Enhanced PDF formats
loading...
PatentsPlus: add to cart
PatentsPlus: add to cartSearch-enhanced full patent PDF image
$9.95more info
PatentsPlus: add to cart
PatentsPlus: add to cartIntelligent turbocharged patent PDFs with marked up images
$18.95more info
 
Sign InRegister
Username  
Password   
forgot password?