Method and apparatus for incremental selective compilation...

Data processing: software development – installation – and managem – Software program development tool – Translation of code

Reexamination Certificate

Rate now

  [ 0.00 ] – not rated yet Voters 0   Comments 0

Details

Reexamination Certificate

active

06308320

ABSTRACT:

FIELD OF THE INVENTION
The present invention relates generally to a method and apparatus for compilers in computer systems. More particularly, the present invention relates to an incremental selective compiler tool that eliminates compilation of intermediate code files by reusing object code files during compilation and linking.
BACKGROUND OF THE INVENTION
Computer compiler systems typically employ a linker that may combine files located in different portions of the computer system, such as in the computer system memory. During linking an intermediate code file may be compiled thereby creating object code files that correspond to compiler directives associated with the intermediate code file. It will be appreciated that compiler directives may be instructions or data that affect the manner of compilation thereby determining the result of the compilation. For instance, compiler directives may be used to manage the compilation of intermediate code.
Minimizing the number of files which are compiled during the process of transforming intermediate code files into object code files and linking the object code files, reduces the computer system resources used by the compiler system. That is, the efficiency of a linker may be improved by minimizing the amount of computer resources required to complete compilation of intermediate code files and locate the resulting object code files for execution on the computer system.
Improvement in the efficiency of compiler systems has been hindered by the time expended and computer resources required by linkers to compile intermediate code files into object codes files. Therefore, there has been a need to selectively reuse object code files when portions of the intermediate code file that affect the resulting object code file, such as compiler directives, have not changed between invocations of the linker. That is, computer system linkers have not determined when object code files that resulted from previous compilations of intermediate code files may be reused. Further, typical linkers have not identified individual object code files that may be reused in subsequent invocations of the linker.
The computer resources required to manage arbitrary copying and movement of intermediate code files and object code files, within a file system and between file systems, continues to add to the overall consumption of computer resources by linkers. For instance, linkers also have not reused object code files between different file systems without relying on the location within a file system of either the object code file or of the intermediate code file.
SUMMARY OF THE INVENTION
An embodiment of the present invention includes an incremental selective compiler tool that minimizes compilation of intermediate code files by reusing object code files during the compilation and linking process. The present invention may be embodied in a compilation system of a computer system.
It will be appreciated that an intermediate code generator creates object code and when the object code is combined with one or more object code files the linker may create executable code. Also, the terms “code generator” and “intermediate code generator” will be used interchangeably herein.
An object code file may be relocated in computer memory thus allowing object code files to be compiled separately. Further, object code files may be linked together and loaded for execution by a computer system. Therefore, the present embodiment employs the linker to resolve any undefined computer location references in the object code file and to generate executable code capable of executing on the computer system. Separate compilation and linking enables flexible management of program execution.
Accordingly, it is an object of the invention to determine when the results of previous compilations of intermediate code files, that is object code files, may be reused in subsequent execution thus saving computer system resources. That is, the incremental selective compiler tool determines whether compiler directives of an intermediate code file have changed between invocations of the linker, thereby requiring recompilation of the intermediate file to complete the linking process.
Further, it is another object of the invention to incrementally recompile only those intermediate code files with compiler directives that have changed since the prior code generation. For instance, when subsequent compilation of a source code file produces an intermediate code file identical to an existing intermediate code file it is an object of the invention to eliminate unnecessary recompilation of the identical intermediate code file.
It is yet another object of the invention to support arbitrary copying and movement of intermediate code files and object code files within a file system and between file systems while continuing to enable reuse of the object code files. Therefore the present invention enables the identification of a set of reusable object code files corresponding to a given intermediate code file without relying on the location within a file system of either the object code file or of the intermediate code file.
The present invention includes an incremental selective compiler tool for reuse of object code files, therefore the present invention determines when the linking process may be completed without recompilation of an intermediate code file. The present invention advantageously incrementally determines which intermediate code files to recompile. The present invention may reuse object code files during linking of the object code files, within a file system or between file systems.
Other aspects and advantages of the present invention will become apparent from the following detailed description, taken in conjunction with the accompanying drawings, illustrating by way of example the principles of the invention.


REFERENCES:
patent: 5204960 (1993-04-01), Smith et al.
patent: 5230050 (1993-07-01), Iitsuka et al.
patent: 5301327 (1994-04-01), McKeeman et al.
patent: 5313387 (1994-05-01), McKeeman et al.
patent: 5325531 (1994-06-01), McKeeman et al.
patent: 5375242 (1994-12-01), Kumar et al.
patent: 5586328 (1996-12-01), Caron et al.
patent: 5655122 (1997-08-01), Wu
patent: 5815720 (1998-09-01), Buzbee
patent: 5850554 (1998-12-01), Carver
Fowler et al. Principles for Writing Reusable Libraries, ACM. pp. 150-159. 1995.*
“PA Risk Compiler Optimization White Paper.” Copyright Hewlett-Packard Co. 1992 (#5091-5594E). Visited Jan. 14, 1998 <http://cllweb.cup.hp.com/o>.
“PA-RISC Optimizer Trouble-Shooting Guide.” Carl Burch, Copyright Hewlett-Packard Co. 1996, version 2.1.
“Compiler Optimizations For The PA-8000.” Anne M. Holler, Hewlett-Packard Company.
“Profile-Based Optimization,” (HP-UX-UX Linker And Libraries User's Guide, visited Nov. 18, 1998) <http://info.fc.hp.com:80/dynaweb/h . . . Generic_BookTextView/25764;uf=O#X>.
“When To Use PBO,” (HP-UX Linker And Libraries User's Guide, visited Nov. 20,1998) <http://info.fc.hp.com:80/dynaweb/h . . . uen 1 a/@Generic_BookTextView/25845>.
“Using PBO With Id-r,” (HP-UX Lindkr And Libraries User's Guide, visited Nov. 20, 1998) <http://info.fc.hp.com:80/dynaweb/h . . . uen 1 a/@Generic_BookTextView/27667>.
“Selecting An Optimization Level With PBO,” (HP-UX Linker And Libraries User's Guide, visited Nov. 20, 1998) <http://info.fc.hp.com:80/dynaweb/h . . . uen 1 a/@Generic_Book TextView/27412>.
“Storing Profile Information For Multiple Programs, ”(HP-UX Linker And Libraries User's Guide, visited Nov. 20, 1998) <http://into.fc.hp.com:80/dynaweb/h . . . Generic_Book TextView/26652;uf=0#X>.
“Forking An Instrumental Application,” (HP-UX Linker And Libraries User's Guide, visited Nov. 20, 1998) <http://info.fc.hp.com:80/dynaweb/h . . . Generic_Book TextView/26892; uf=0#>.
“Using PBO To Optimize Shared Libraries,” (HP-UX Linker And Libraries User's Guide, visited Nov. 20, 1998) <http://info.fc.hp.cm:80/dynaweb/h . . . uen 1 a/@Generic_Book

LandOfFree

Say what you really think

Search LandOfFree.com for the USA inventors and patents. Rate them and share your experience with other people.

Rating

Method and apparatus for incremental selective compilation... does not yet have a rating. At this time, there are no reviews or comments for this patent.

If you have personal experience with Method and apparatus for incremental selective compilation..., we encourage you to share that experience with our LandOfFree.com community. Your opinion is very important and Method and apparatus for incremental selective compilation... will most certainly appreciate the feedback.

Rate now

     

Profile ID: LFUS-PAI-O-2579343

  Search
All data on this website is collected from public sources. Our data reflects the most accurate information available at the time of publication.