A loading and linking process allows for the flexible loading and linking of software modules into a memory space, without regard to the order in which symbols are defined and referenced in such software modules, and without generating dangling references. An unloading process allows for software module unloading/unlinking from an already linked set of software modules, also without generating dangling references. A loading/linking system may be used to perform these processes.
A linking order forming section forms linking orders of intermediate objects. A linker starting section starts a linker based on the linking order that is formed by applying a genetic algorithm, etc. to form an executable object. A comparing section compares a program size of the formed executable object with the minimum value stored in a storing section. If the program size is smaller than the minimum value, the storing section stores this program size as the minimum value and also stores the linking order at that time. The linking order that can provide the minimum program size can be obtained effectively without the manual intervention by repeating a series of steps by using a repeating section.
An interpreter uses a symbol table containing information for resolving symbolic references in instructions. Memory is provided for storing symbolic reference-result associations, the result of the association having resulted from resolving the symbolic reference of the association for an instruction. The memory is organized in groups of locations, each for results for a different category of instructions. During execution of a particular instruction, that group is consulted which is assigned to the category to which the particular instruction belongs. If that group contains an association for the symbolic reference in the particular instruction. If there is such an association, the result from the association is used as operand data for executing the particular instruction. If there is no such association, the particular symbolic reference is resolved by means of the symbol table. The result from said resolving is used as the operand data for executing the particular instruction and an association between the symbolic reference and the result of said resolving is stored in the group assigned to the category of the particular instruction.
A method and system for implementing an application on a computer system, in particular a portable computer system, by binding an interface (e.g., a function call and required address translations) in the application to a specific memory address. The application is installed on the computer system with a reference to a section of computer code. The reference is for transferring execution of the application to that section of computer code. After a specified criterion is satisfied, the reference is replaced with a specific memory address of the computer system's memory map, such as a line number, thus binding the application to that memory address for that function call. Accordingly, when the application makes a call to that function, the execution of the application can proceed directly to the line number where that function is located.
A strategy is described for assisting a supplier in updating code without negatively impacting preexisting applications that may interact with the original or updated code. In this strategy, a resource is transferred from a first code module to a second code module. So that the applications that utilize the resource can continue to access this resource, the strategy adds forwarding information to a new version of the first code module. The forwarding information provides a note which shows the Common Language Runtime (CLR) where to find the specified resource when the code modules are executed.
A method of validating a relationships table. The method includes generating a relational schema of symbols in the program code file based on a framework for models in the integrated development environment, the schema including two related tables. The method further includes determining a relationship between the two tables. Further, the method includes adding definitions from the program code file for symbols in the relational schema to a definition set retaining definitions of symbols. Additionally, the method includes producing proxy definitions for use with the definition set for each symbol in the program code file without a definition in the definition set. Furthermore, the method includes generating the relationships table in the relational schema containing the relationship between the two tables. Further, the method includes validating the relationships table by matching the symbols definitions and references, where the validation removes public symbols and referenced symbols from the relationships table.