System for modifying the functionality of compiled computer code at run-time
First Claim
1. A method for converting a source computer program into an executable object having symbol references that can be redirected at run-time, the method executing on a computer system, the computer system including a processor and storage device, the computer system further including a computer program having symbolic references to original definitions having original names, the method comprising the following steps performed by the processor after completion of the creation of the source computer program:
- identifying one or more of the original names;
renaming one or more original names used in the source computer program with new names;
creating an association between the original names and the new names so that symbolic references to the original names invoke a reference to the new names; and
subsequent to the above steps, performing the step of creating executable code from the source computer program, wherein the executable code uses the associations between the original names and the new names.
2 Assignments
0 Petitions
Accused Products
Abstract
A system whereby a computer program can be transformed so that one or more of the program'"'"'s symbolic references are made suitable for redirection. Once provided with redirectable symbols, the functionality of the program is easily changed at a later time, such as at start-up time or at run-time. A first phase converts a pre-existing computer program so that symbols can be re-directed. This first phase also generates auxiliary files for use in a later phase. A second phase is where the converted computer program is loaded into, and executed upon, a user'"'"'s computer. A third phase is where the original computer program functionality is modified. The modification occurs at a high-level and can be performed easily by someone who was not involved in the programming of the original program. Modifications are simplified to the extent that even non-programmers can change the functionality of the computer program. This third phase uses the auxiliary file generated in the first phase. A fourth phase is where the modified functionality is loaded into an end-user'"'"'s computer and is executed in conjunction with the converted program. Other features of the invention include the use of a table to facilitate symbol redirection and automatic identification of symbols and generation of auxiliary files and intermediary files to accomplish compilation steps necessary for program and add-on module builds.
-
Citations
33 Claims
-
1. A method for converting a source computer program into an executable object having symbol references that can be redirected at run-time, the method executing on a computer system, the computer system including a processor and storage device, the computer system further including a computer program having symbolic references to original definitions having original names, the method comprising the following steps performed by the processor after completion of the creation of the source computer program:
-
identifying one or more of the original names;
renaming one or more original names used in the source computer program with new names;
creating an association between the original names and the new names so that symbolic references to the original names invoke a reference to the new names; and
subsequent to the above steps, performing the step of creating executable code from the source computer program, wherein the executable code uses the associations between the original names and the new names. - View Dependent Claims (2, 3, 4, 5, 6, 7, 8, 9, 10)
using information generated by the compiler to perform the step of identifying original names in the source computer program. -
5. The method of claim 1, wherein a symbolic reference is to a data structure.
-
6. The method of claim 1, wherein a symbolic reference is to a program instruction.
-
7. The method of claim 1, wherein a symbolic reference is to a resource.
-
8. The method of claim 1, wherein a symbolic reference is to an object.
-
9. The method of claim 1, wherein a predetermined developer'"'"'s environment is used to compile the source computer program, wherein the predetermined developer'"'"'s environment includes utilities for generating information about symbolic references in the source computer program, the method further comprising the steps of
using information from one or more files to generate one or more auxiliary files that include information on original names; - and
using the auxiliary file to compile an add-on module for execution in conjunction with the source computer program.
- and
-
10. The method of claim 1, wherein the predetermined developer'"'"'s environment provides for compiling the source computer program by using a linker that generates a .map file, the method further comprising
wherein the step of using information from one or more files to generate an auxiliary file includes the substep of using the .map file to derive a .def file that is included as at least a portion of the auxiliary file.
-
-
11. A method for providing run-time modification of functionality in an executable computer program that has a substitute reference for one or more symbolic references used in a source code version of the executable computer program, the method executing on a computer system, the computer system including a processor and storage device, teh method including the steps of:
-
loading the executable computer program into the computer system;
loading a module that includes an item definition into the computer system;
executing a process to associate the substitute reference with the item definition; and
associating the substitute reference with the item definition during execution of the executable computer program by concurrently executing script language instructions to control the associations.
-
-
12. A computer-readable medium including instructions for converting a source computer program into an executable object having symbol references that can be redirected at run-time, the computer-readable medium including instructions for execution on a computer system, the computer system including a processor and storage device, the computer system further including a computer program having symbolic references to original definitions having original names, the computer-readable medium including:
-
one or more instructions for identifying one or more of the original names;
one or more instructions for renaming one or more original names used in the source computer program with new names;
one or more instructions for creating an association between the original names and the new names so that symbolic references to the original names invoke a reference to the new names; and
one or more instructions for creating executable code from the source computer program, wherein the executable code uses the associations between the original names and the new names. - View Dependent Claims (13, 14, 15, 16, 17, 18, 19, 20, 21)
one or more instructions for associating a pointer to an original definition with the entry.
-
-
15. The computer-readable medium of claim 12, wherein a compiler is used to compile the source computer program, the computer-readable medium further comprising
one or more instructions for using information generated by the compiler to perform the step of identifying original names in the source computer program. -
16. The computer-readable medium of claim 12, wherein a symbolic reference is to a data structure.
-
17. The computer-readable medium of claim 12, wherein a symbolic reference is to a program instruction.
-
18. The computer-readable medium of claim 12, wherein a symbolic reference is to a resource.
-
19. The computer-readable medium of claim 12, wherein a symbolic reference is to an object.
-
20. The computer-readable medium of claim 12, wherein a predetermined developer'"'"'s environment is used to compile the source computer program, wherein the predetermined developer'"'"'s environment includes utilities for generating information about symbolic references in the source computer program, the computer-readable medium further comprising
one or more instructions for using information from one or more files to generate one or more auxiliary files that include information on original names; - and
one or more instructions for using the auxiliary file to compile an add-on module for execution with the source computer program.
- and
-
21. The computer-readable medium of claim 12, wherein the predetermined developer'"'"'s environment provides for compiling the source computer program by using a linker that generates a .map file, the computer-readable medium further comprising
one or more instructions for using the .map file to derive a .def file that is included as at least a portion of the auxiliary file.
-
22. A computer-readable medium including instructions for providing run-time modification of functionality in an executable computer program that has a substitute reference for one or more symbolic references used in a source code version of the executable computer program, the computer-readable medium including instructions for execution on a computer system, the computer system including a processor and storage device, the computer-readable medium including
one or more instructions for loading the executable computer program into the computer system; -
one or more instructions for loading a module that includes an item definition an item definition into the computer system;
one or more instructions for executing a process to associate the substitute reference with the item definition; and
one or more instructions for associating the substitute reference with the item definition during execution of the executable computer program by concurrently executing script language instructions to control the associations.
-
-
23. A computer data signal embodied in a carrier wave including instructions for converting a source computer program into an executable object having symbol references that can be redirected at run-time, the computer data signal including instructions for execution on a computer system, the computer system including a processor and storage device, the computer system further including a computer program having symbolic references to original definitions having original names, the computer data signal including:
-
one or more instructions for identifying one or more of the original names;
one or more instructions for renaming one or more original names used in the source computer program with new names;
one or more instructions for creating an association between the original names and the new names so that symbolic references to the original names invoke a reference to the new names; and
one or more instructions for creating executable code from the source computer program, wherein the executable code uses the associations between the original names and the new names. - View Dependent Claims (24, 25, 26, 27, 28, 29, 30, 31, 32)
one or more instructions for storing information about the associations in a table format. -
25. The computer data signal of claim 24, further comprising
one or more instructions for causing a symbolic reference to reference an entry in the table; - and
one or more instructions for associating a pointer to an original definition with the entry.
- and
-
26. The computer data signal of claim 23, wherein a compiler is used to compile the source computer program, the computer data signal further comprising
one or more instructions for using information generated by the compiler to perform the step of identifying original names in the source computer program. -
27. The computer data signal of claim 23, wherein a symbolic reference is to a data structure.
-
28. The computer data signal of claim 23, wherein a symbolic reference is to a program instruction.
-
29. The computer data signal of claim 23, wherein a symbolic reference is to a resource.
-
30. The computer data signal of claim 23, wherein a symbolic reference is to a resource.
-
31. The computer data signal of claim 23, wherein a predetermined developer'"'"'s environment is used to compile the source computer program, wherein the predetermined developer'"'"'s environment includes utilities for generating information about symbolic references in the source computer program, the computer data signal further comprising
one or more instructions for using information from one or more files to generate one or more auxiliary files that include information on original names; - and
one or more instructions for using the auxiliary file to compile an add-on module for execution in conjunction with the source computer program.
- and
-
32. The computer data signal of claim 23, wherein the predetermined developer'"'"'s environment provides for compiling the source computer program by using a linker that generates a .map file, the computer data signal further comprising
one or more instructions for using the .map file to derive a .def file that is included as at least a portion of the auxiliary file.
-
-
33. A computer data signal embodied in a carrier wave including instructions for providing run-time modification of functionality in an executable computer program that has a substitute reference for one or more symbolic references used in a source code version of the executable computer program, the computer data signal including instructions for execution on a computer system, the computer system including a processor and storage device, the computer data signal including
one or more instructions for loading the executable computer program into the computer system; -
one or more instructions for loading a module that includes an item definition into the computer system;
one or more instructions for executing a process to associate the substitute reference with the item definition; and
one or more instructions for associating the substitute reference with the item definition during execution of the executable computer program by concurrently executing script language instructions to control the associations.
-
Specification