Data processing: software development – installation – and managem – Software program development tool – Translation of code
Reexamination Certificate
1998-12-30
2001-12-04
Powell, Mark R. (Department: 2122)
Data processing: software development, installation, and managem
Software program development tool
Translation of code
C717S152000, C717S152000, C717S152000, C717S152000
Reexamination Certificate
active
06327702
ABSTRACT:
FIELD OF THE INVENTION
This invention relates generally to interpretive runtime environments and more particularly to generating code in a compiled language for execution in an interpretive runtime environment.
COPYRIGHT NOTICE/PERMISSION
A portion of the disclosure of this patent document contains material which is subject to copyright protection. The copyright owner has no objection to the facsimile reproduction by anyone of the patent document or the patent disclosure as it appears in the Patent and Trademark Office patent file or records, but otherwise reserves all copyright rights whatsoever. The following notice applies to the software and data as described below and in the drawings hereto: Copyright© 1997, Microsoft Corporation, All Rights Reserved.
BACKGROUND OF THE INVENTION
Interpreted languages are widely used to make computer programs portable across diverse hardware platforms. The same interpreted language program can be easily moved from one type of computer to another; only the runtime environment which performs the interpretation must be tailored specifically to the underlying hardware.
This benefit of an interpreted language is also its greatest drawback. A program written in an interpreted language executes significantly slower than the same program written in a compiled language on the same computer. Previous solutions to the problem all contain major flaws.
For example, native code compilers have been implemented which convert the instructions of the interpreted language into equivalent instructions in a language native to the specific hardware. The native code program is then executed. However, because the compiled native code program does not execute in the interpretive runtime environment, any functions provided by the runtime environment are unavailable to the program. Such a program is also frequently much larger than the interpreted language program, resulting in resource issues on minimally configured computers.
Another approach taken was to convert the interpreted language program, as a whole, into a program in a compiled language which accomplishes the same functions. Such efforts have proved highly complex to implement and result in inefficient compiled code.
Therefore, what is needed is a way to increase the performance of an interpreted language program while providing access to the functions of the corresponding runtime environment, and to do so in a fashion that converses system resources.
SUMMARY OF THE INVENTION
The above-mentioned shortcomings, disadvantages and problems are addressed by the present invention, which will be understood by reading and studying the following specification.
An inlining code generator, executing external to a runtime environment, reproduces the processing of an innerloop of an interpreter for the runtime environment. The inlining code generator processes a program in the interpreted language and produces a corresponding program in a compiled language. The compiled language program is compiled into a native language program using a standard compiler specific to the underlying hardware. The native language program executes within the runtime environment in the same fashion as if it had been interpreted by the interpreter.
The inlining code generator eliminates the overhead associated with running interpreted code programs by exporting the processing time for the innerloop to the code generator. Because the inlining code generator accepts existing interpreted language programs as input, the portability benefits afforded by those programs remain, while, at the same time, the execution of those programs be optimized when they are run on a particular computer. Furthermore, because the resulting native language program operates within the framework of the runtime environment, functions and routines provided by the runtime environment are available to the native language program.
The present invention describes systems, clients, servers, methods, and computer-readable media of varying scope. In addition to the aspects and advantages of the present invention described in this summary, further aspects and advantages of the invention will become apparent by reference to the drawings and by reading the detailed description that follows.
REFERENCES:
patent: 4989132 (1991-01-01), Mellender et al.
patent: 5848274 (1998-12-01), Hamby et al.
patent: 5884081 (1999-03-01), Burbeck
patent: 5953736 (1999-09-01), O'Connor et al.
patent: 5970249 (1999-10-01), Holzle et al.
patent: 5995754 (1999-11-01), Holzle et al.
patent: 6009517 (1999-12-01), Bak et al.
patent: 6021275 (2000-02-01), Horwat
patent: 6026485 (2000-02-01), O'Connor et al.
patent: 6063128 (2000-05-01), Bentley et al.
patent: 6081665 (2000-06-01), Nilsen et al.
patent: 6098089 (2000-08-01), O'Connor et al.
patent: 6110226 (2000-08-01), Bothner
patent: 6122638 (2000-09-01), Huber et al.
patent: 6151703 (2000-11-01), Crelier
patent: 6161217 (2000-12-01), Detlefs et al.
patent: 6186677 (2001-02-01), Angel et al.
patent: 6260078 (2001-07-01), Fowlow
Title: Optimizing ML with Run-Time Code Generation, Author: Lee et al, ACM, 1996.*
Title: A Specification of Java Loading and Byte Code Verification, ACM, 1998.*
Title: Type feedback vs. concrete type inference: a comparison of optimization techniques for object-oriented languages , Author: Agesen et al, ACM, 1995.
Gilbert Mark
Sauntry David M.
Das Chameli C
Microsoft Corporation
Powell Mark R.
Workman & Nydegger & Seeley
LandOfFree
Generating a compiled language program for an interpretive... does not yet have a rating. At this time, there are no reviews or comments for this patent.
If you have personal experience with Generating a compiled language program for an interpretive..., we encourage you to share that experience with our LandOfFree.com community. Your opinion is very important and Generating a compiled language program for an interpretive... will most certainly appreciate the feedback.
Profile ID: LFUS-PAI-O-2600296