Data processing: software development – installation – and managem – Software program development tool – Translation of code
Reexamination Certificate
1998-12-22
2001-06-12
Powell, Mark (Department: 2122)
Data processing: software development, installation, and managem
Software program development tool
Translation of code
Reexamination Certificate
active
06247175
ABSTRACT:
BACKGROUND OF THE INVENTION
1. Field of the Invention
The present invention relates to a method and apparatus for reducing the memory requirements of software loads, in particular, a method and apparatus for the identification and removal of unused procedures and use of procedure shells to maintain the integrity of the procedure table during computer software loadbuilding time.
2. Description of the Problem Solved
In the telephonic industry, consumer demand for additional telephonic functionality increases the software load on the telephonic computer hardware designated to execute such loads. The increase in software load decreases the remaining life of the computer hardware. At some point, the computer hardware cannot handle additional functionality and a telephonic vendor has to stop delivery of features, upgrade the hardware, or reduce the load while maintaining increased functionality. Thus, there is a need to provide computer software for increasing the software load capacity on telephonic computer hardware. Such computer software should extend the life of telephone switch hardware by reducing the hardware memory requirement of telephone switch software, and also reduce the memory requirement of computer software of Extended Peripheral Modules (XPMs). XPMS are the telephony hardware that implement many of the various telephony computer software applications. For example, XPMs can collect digits, link different telecompanies and private networks, track data, manage communication between trunks, manage residential telephone lines, and control telephone tone generation, as well as handling such software driven applications as speed dialing. The present invention relates to computer software and a method for preserving computer memory by recognizing those computer program procedures not used in a particular software load and then removing them during loadbuilding.
The term “loadbuilding” is used herein to refer to the compiling and linking of computer code to produce the final software load. The term “software load” is used herein to refer to the final computer software that is executed by computer hardware for a particular application. A software load is developed from high-level computer language referred to as source code. The source code file of a software load is compiled by one of a number of compilers as are well known in the field to produce an object code file. Object code files are linked together by a linker to produce the software load, which can then be executed by the machine (computer hardware such as a XPM or PC). In particular applications, the source code, for example, written in Pascal, is compiled into an intermediate language identified as pcode. Xysco™, a software building tool developed by Nortel, takes the link code file and converts time critical sections from pcode to object code.
Software loads are comprised of modules. A module is a portion of a software load that carries out a specific function and may be used alone or with other modules. Within each module are self-contained blocks of software called procedures. If a particular application or load requires a procedure in a particular module, the linker pulls in the entire module, along with all procedures contained in the module. By way of example,
FIG. 1
illustrates three modules A, B, and C. Each module contains three procedures: ap
1
, ap
2
, and ap
3
; bp
1
, bp
2
, and bp
3
; and cp
1
, cp
2
, and cp
3
, respectively. It is understood that modules can contain substantially more than three procedures.
Referring again to
FIG. 1
, if software load L1 requires ap
1
, bp
2
, and cp
2
, a compiler would first compile source code to object code and then a linker or other suitable software building tool would link together the modules containing these procedures into software load L1, i.e., would place into L1 each module A, B, and C and all procedures contained therein. Similarly, software load L2 requires ap
2
, bp
3
, and cp
3
. Again, during loadbuilding, the linker would link together the modules containing these procedures to form software load L2, i.e., would place into L2 each module A, B, and C and all procedures contained therein. Despite the different procedures required by software loads L1 and L2 and despite each not needing all of the procedures contained in modules A, B, and C, during loadbuilding, the traditional linker links together all three modules A, B, and C, and all procedures contained therein to form software loads L1 and L2. Clearly, when building software loads, presently used linkers will create loads that take up valuable computer hardware memory for procedures that are not implemented when the load is executed. (The computer memory used by a particular software load is referred to herein as a “memory footprint.”)
The present invention recognizes that it would be advantageous to, during this software loadbuilding process, for compilers, linkers, and other software loadbuilding tools such as Xsyco™ to identify the procedures that are not used in the final software load and remove them, thereby creating a smaller computer memory footprint having the same functionality as the software load built using traditional compilers, linkers, and other software building tools.
With the foregoing in mind, it becomes a general object of the present invention to extend the service life of hardware by removing unused procedures from a software load resident on such hardware.
It is another object of the present invention to recognize unused procedures contained within modules used to build particular software loads.
It is a further object of the present invention to define all procedures, all required procedures, and entry points within each module.
It is yet another object of the invention to remove unused procedures during the loadbuilding process.
It is a further object of the invention to use procedure shells to maintain the integrity of each linked segment and corresponding procedure directories.
It is an object of the invention to use a placeholder, or tombstone, in the procedure directory to maintain the integrity of the procedure directory.
SUMMARY OF THE INVENTION
The present invention solves the above problems by providing a method and apparatus for identifying and removing unused procedures from computer software loads, while maintaining the integrity of the procedure directory, at loadbuild time, and includes a compiler, linker, and other software loadbuild tools. The compiler is adapted to define all procedures contained within software modules and to incorporate them into module link records. The compiler is further adapted to identify all module procedure calls, entry points into the software load, and required procedures, and to create call and required procedure lists to also incorporate into link records. Based on the information contained in the link records, the linker of the present invention creates a temporal data structure referred to as a call graph and a procedure management table that records the operational flow of the software load and the “call”/“not called” status of each procedure contained in the link record. To determine the procedures that are unused (“not called”) by a software load, the linker initially sets the status of each procedure of each module used by the software load to “not called”, and goes through a call graph processing method to determine which procedures are actually “called” by the software load, updating the procedure management table as it proceeds through the call graph processing method. Once the linker completes the call graph processing operation, the procedure management table has identified the procedures that are “called” by a particular software load. The remaining procedures are “not called” and are, thus, recognized by the linker as those procedures to remove from the software load. The present invention removes each “not called” procedure from the linked files while maintaining the integrity of the procedure tables by using one of several different procedure shell methods or by using what is referred to herein as the t
Ledford Bruce Alan
Stewart Nicholas Richard
Chavis John Q.
Nortel Networks Limited
Powell Mark
LandOfFree
Method and apparatus for identifying and removing unused... 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 identifying and removing unused..., we encourage you to share that experience with our LandOfFree.com community. Your opinion is very important and Method and apparatus for identifying and removing unused... will most certainly appreciate the feedback.
Profile ID: LFUS-PAI-O-2436996