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.