Incremental byte code compilation system
AssigneeSupercede, Inc.
InventorsJohn Hamby, Niklas Gustafsson, Patrick Lau
Life of this patent
Estimating the term…
Abstract
An incremental byte code compiler which provides a high-performance execution environment for dynamically linked languages and for distributed target-independent applications. The execution environment provided by the present invention includes an incremental byte code compiler for generating IL symbols and code objects from a byte code source file, a persistent symbol table for storing the IL symbols and code objects, and an incremental imager for dynamically forming the image of the program from the code objects. The present invention further provides an extremely efficient methodology for dynamically adding program elements to a program under execution.
Claims6
A method for increasing the execution speed of a computer program written in a computer language having facilities for dynamically adding program elements under control of the program itself, said method comprising the steps of:
- executing said program in a first thread of execution:
- dynamically adding a program element to said program under control of said program itself, said step of dynamically adding a program element including the further steps of
- generating a request from said program to dynamically add a program element to said program,
- communicating said request to a translation means executing in a second thread of execution,
- employing said translation means, translating said program element into code objects and IL symbols, and
- incrementally updating the image, using memory mapped data, of said program from said code objects and IL symbols in said second thread of execution;
- and thereafter
- continuing execution of said program in said first thread of execution embodying the updated image of said program incorporating said program element.
Apparatus for increasing the execution speed of a computer program written in a computer language having facilities for dynamically adding program elements under control of the program itself, said apparatus including a programmable computer further including a central processing unit, memory, and input and output devices, the apparatus further comprising:
- execution means for executing said program in a first thread of execution;
- means for dynamically adding a program element to said program under control of said program itself, said means for dynamically adding a program element including
- request generation means for generating a request from said program to dynamically add a program element to said program,
- translation means, executing in a second thread of execution, for translating said program element into code objects and IL symbols,
- communication means for communicating said request to said translation means, and
- incremental update means for incrementally updating the image, using memory mapped data, of said program from said code objects and IL symbols in said second thread of execution;
- and
- responsive to the adding a program element to said program by said programmatic means for dynamically adding a program element, means for continuing execution, in said first thread of execution, of said program embodying the updated image of said program incorporating said program element.
Dependencies are inferred from the claim text.