Data processing: software development – installation – and managem – Software program development tool – Translation of code
Reexamination Certificate
1999-05-10
2002-08-13
Morse, Gregory (Department: 2122)
Data processing: software development, installation, and managem
Software program development tool
Translation of code
C717S142000, C717S151000, C717S153000
Reexamination Certificate
active
06434742
ABSTRACT:
FIELD OF THE INVENTION
This invention relates to a compiler that generates executable software applications from source code written in a programming language. More particularly, this invention relates to a linker in a compiler that allows symbols in an intermediate object code file and/or library to be renamed without recompiling the source code for the intermediate object code file and/or library.
PROBLEM
In order to produce executable programs for computer systems, computer programmers write source code in a programming language. Some examples of programming languages are C, C++, Fortran, Pascal, and Visual Basic. In order to convert the source code into code that can be read by a processor, the source code is input into a compiler that converts the source code into machine readable code.
It is common for the source code of a software application to be written in many different phases or in many different components. For example, several programmers may each be working on a different aspect of an application or a new feature may be added to an existing application to improve performance of the application. Different flies containing the different components of an application are joined together by a linker in a compiler while the executable code is being generated.
The linker is an editor that checks each file to make sure that the terms or symbols from the different flies agree. For purposes of the present discussion, a symbol is a name identifying any variable or function in the source code. If the symbols for a particular variable or function do not agree in multiple files of an application, the linker detects an error. When an error is detected by the linker, the linker either raises flags indicating possible mismatches or does not allow the files to be compiled into executable code. When a symbol mismatch occurs, the programmer or programmers must go back into each file of source code for the application and find the mismatched symbol. The mismatch must then be corrected and the files must each be recompiled and applied to a link editor. This is a problem because every file containing source code must be corrected and then re-compiled in order to make executable code.
Furthermore, when a file containing a new layer of is added to an application, each source file must be recompiled to assure matching symbols for each object. This is a waste of processing time to recompile unchanged code. It would instead be desirable to allow new layers of software to be added and call an existing defination without recompiling the existing code. There is a need in the art for a process performed by a linder in a compiler that reduces the acount of files that must be recompiled when a new layer of software is added to an application.
SOLUTION
The above and other problems are solved and an advance in the art is made by the system for automatically remaning symbols in files during the compiling of the files, termed “symbol remaning process” herein. Symbol remaning allows a symbol in a first file or library to be remaned by the linker. This allows new layers of software to be added under an existing interface without recompiling existing code. Symbol renaming in the linker also allows a programmer to easily fix mismatched symbols in linked files without recompiling the source code in all of the linked files.
In order to convert source code into executable code, the source files containing the source code must be processed by a compiler, linker, and a constructor. Each source file is first processed by a compiler. The compiler is comprised of a scanner, a parser and a semantic checker. The scanner scans each file to detect each symbol or token in the file. The parser detects the structure of expressions in the language to detect each expression. The semantic checker determines the meaning of each symbol in an expression. The intermediate code generator than generates a file of intermediate object code for each file of source code. The intermediate object code file represents the data structures and functions defined in the source code file as determined by the semantic checker.
After all of the files of source code have been compiled into intermediate object code files, the intermediate object code files are applied to a linker which joins the files of intermediate object code into one file. The linker checks for agreements between symbols declared in each source code file. If there is an error in agreement in symbol types, the linker either flags the error and indicates the error to the programmer(s) or does not allow the files to be linked. After the files have been linked, the resulting file is applied to a constructor which generates an executable file.
The present symbol renaming process performs the symbol renaming in the linker in the following manner. The linker scans a first intermediate object code file to detect a substitution indicator indicating a variable or function in a second file is to be renamed. The symbol to be replaced is read and then the substitution symbol is read. The linker then replaces every occurrence of the symbol as the symbol is read from a second file or library with the substitution symbol in the intermediate code file generated by the linker.
REFERENCES:
patent: 5588143 (1996-12-01), Stupek, Jr. et al.
patent: 5715460 (1998-02-01), Acker et al.
patent: 5732275 (1998-03-01), Kullick et al.
patent: 5764992 (1998-06-01), Kullick et al.
patent: 5860004 (1999-01-01), Fowlow et al.
patent: 5923880 (1999-07-01), Rose et al.
patent: 5940074 (1999-08-01), Britt, Jr. et al.
patent: 5956513 (1999-09-01), McLain, Jr.
patent: 5960189 (1999-09-01), Stupek, Jr. et al.
patent: 5978586 (1999-11-01), Baisley et al.
patent: 5978587 (1999-11-01), Baisley et al.
patent: 6052526 (2000-04-01), Chatt
patent: 6071317 (2000-06-01), Nagel
patent: 6145124 (2000-07-01), Price
patent: 6106574 (2000-08-01), Baisley et al.
patent: 6141792 (2000-10-01), Acker et al.
patent: 6199195 (2001-03-01), Goodwin et al.
patent: 6243766 (2001-06-01), Sliger et al.
Das Chameli C.
Lucent Technologies - Inc.
Morse Gregory
Patton & Boggs LLP
LandOfFree
Symbol for automatically renaming symbols in files during... does not yet have a rating. At this time, there are no reviews or comments for this patent.
If you have personal experience with Symbol for automatically renaming symbols in files during..., we encourage you to share that experience with our LandOfFree.com community. Your opinion is very important and Symbol for automatically renaming symbols in files during... will most certainly appreciate the feedback.
Profile ID: LFUS-PAI-O-2972663