Patent ReferencesMethod and apparatus for dynamically deoptimizing compiled activations Development system with improved methods for recompiling dependent code modules Method and apparatus for improving compiler performance during subsequent compilations of a source program Java development environment using optimizing ahead-of-time compiler Development system with methods for just-in-time compilation of programs Secure and reliable bootstrap architecture Method and apparatus for performing byte-code optimization during pauses Method for discovering and registering agents in a distributed network Method for optimizing Java performance using precompiled code Method and apparatus for selecting ways to compile at runtime InventorsApplicationNo. 09621571 filed on 07/21/2000US 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 structureExaminersPrimary: Dam, Tuan Q.Assistant: Steelman, Mary Attorney, Agent or FirmInternational ClassG06F009/45AbstractThis 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
Field of SearchCompiling codeStatic (source or intermediate level) Including recompilation Including intermediate code Platform-independent form (e.g., abstract code) Just-in-time compiling or dynamic compiling (e.g., compiling Java bytecode on a virtual machine) Managed object system Particular communication authentication technique | |