Extensible compiler and method

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

C717S152000, C717S152000, C717S152000, C717S152000, C717S152000, C717S152000

Reexamination Certificate

active

06219834

ABSTRACT:

BACKGROUND OF THE INVENTION
1. Field of the Invention
The present invention relates to compilers for computer programing languages, and more particularly relates to a system and method for an extensible incremental compiler and extension mechanisms for same.
2. Description of the Related Art
Compilers are computer programs which translate input programs from a human readable programing language to one or more computer readable files. Compilers are employed in most high level programing languages such as Pascal, Fortran, C and C++. Conventional compilers operate on an entire input file, referred to as source code and generate the computer readable files which are referred to as the object code. This process demands a great deal of computer resources when large files are being compiled.
In order to make the compilation process more efficient, compilers have been developed which determine where changes have been made in the source code and only act upon those sections and any sections of code which depends therefrom. These compilers are known as incremental compilers. For example, techniques for implementing a limited form of incremental compilation have been developed in which a tool called “make” determines which files need to be recompiled based upon time stamps entered after the last compilation process. The “make” tool then directs the compiler to act upon the necessary sections of the source code.
While incremental compilers are known in the art, those compilers which are currently available are constrained to a set of features which are provided by the base compiler. In other words, the compiler and its processes are non-extensible. As a result, either compiler providers are forced to implement a great deal of features which will rarely be used, resulting in undesirable overhead, or compiler users must accept a limited set of features integral to the compiler.
In the past, efforts have been made to provide a compiler with more flexibility. For example, in LISP systems, a metaobject protocol is employed to provide expanded functionality. However, rather than merely augmenting the compilation process, metaobject protocols form the basis for language design by providing a framework for specifying language semantics as well as their associated compiler operations.
Alternatively, a compiler provider can make the source code of the compiler available to end users who wish to add functionality. However, this requires altering and recompiling the underlying compiler each time a new function is required. It also requires freely circulating the source code for the compiler, making it available to would be competitors for copying. In addition, once the compiler source code is modified, subsequent product maintenance by the supplier is virtually impossible.
Accordingly, there remains a need in the art for an incremental language compiler which is extensible to augment the compilation process without altering the well defined, underlying programing language or compiler.
SUMMARY OF THE INVENTION
A method of extensible compilation of a computer program includes the steps of registering a list of available extension mechanisms (extensions); activating those extensions called by the program; passing control from the compiler to an active extension; performing the extension function; and returning control to the compiler.
In accordance with one form of the present invention, an extensible compiler includes an incremental compiler that operates in cooperation with at least one linked library. The linked library includes at least one extension mechanism therein. The extensible compiler receives and operates on a configuration file to provide at least one object file. During compilation, the incremental compiler registers the extensions within the linked library, activates those extensions from the library as specified by the configuration file thereby creating at least one active extension, and passes control to the active extension at an appropriate point during compilation. Upon completing its programmed functionality, the extension returns control to the compiler.
In another embodiment of an extensible incremental compiler of the present invention, the extensions take the form of observer extensions, incorporation extensions, and dependency graph extensions. Observer extensions provide augmented messaging functionality at selected points of interest in the compilation process. Incorporation extensions provide augmented functionality during the process of incorporation by adding or replacing substages in the processing stages of a function body or a variable initializer. Dependency graph extensions allow the dependency graph, which represents the compiled program, to be directly altered by the extension.
Preferably, an extensible incremental compiler formed in accordance with the present invention further includes a graphical user interface and at least one application programming interface (API) for accessing, altering, and generating the extension mechanisms.
These and other objects, features and advantages of the present invention will become apparent from the following detailed description of illustrative embodiments thereof, which is to be read in connection with the accompanying drawings.


REFERENCES:
patent: 5812850 (1998-09-01), Wimble
patent: 5848274 (1998-12-01), Hamby et al.
Larcheveque et al., “Optimal Incremental Parsing”, ACM, pp. 1-15, Jan. 1995.*
Bates et al., “Incremental Program Testing Using Program Dependence Graphs”, ACM, 384-396, 1993.*
Soroker et al., “Extension Mechanisms in Montana”, IEEE, pp. 119-128, Jun. 1997.

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

Extensible compiler and method does not yet have a rating. At this time, there are no reviews or comments for this patent.

If you have personal experience with Extensible compiler and method, we encourage you to share that experience with our LandOfFree.com community. Your opinion is very important and Extensible compiler and method will most certainly appreciate the feedback.

Rate now

     

Profile ID: LFUS-PAI-O-2512115

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