Claims Analysis
Total Claims: 47
Claim 1
Independent Claim
143 words
A method of efficiently generating a fully-linked program image of a designated program and related library programs using a dynamic linking system having an image cache, the method implemented in a computer system, the method including the steps of: invoking said linking system with parameters representing an unlinked program image of said designated program; searching for said fully-linked program image of said designated program and said related library programs in said image cache; and if said fully-linked program image is found in said image cache, then the method further includes the steps of: retrieving said fully-linked program image with a list of program identifiers and related addresses for each said related library program from said image cache; and mapping said fully-linked program image of said designated program and each of said related library programs at said addresses from said list of program identifiers.
Claim 2
Independent Claim
143 words
A method of efficiently generating a fully-linked program image of a designated program and related library programs using a dynamic linking system having an image cache, the method implemented in a computer system, the method including the steps of: invoking said linking system with parameters representing an unlinked program image of said designated program; searching for said fully-linked program image of said designated program and said related library programs in said image cache; and if said fully-linked program image is found in said image cache, then the method further includes the steps of: retrieving said fully-linked program image with a list of program identifiers and related addresses for each said related library program from said image cache; and mapping said fully-linked program image of said designated program and each of said related library programs at said addresses from said list of program identifiers.
Claim 3
Dependent Claim
168 words
The method of claim 1 wherein if the fully-linked program image is not found in said image cache, the method further comprises the steps of: generating an unlinked copy of said designated program; searching for a provisionally fixed-up copy of said related library programs in a library cache of said linking system; and if said provisionally fixed-up library programs is found in said library cache, then the method further including the steps of: retrieving said provisionally fixed-up library programs from said library cache; linking said provisionally fixed-up library, programs with each other and with said unlinked designated program to create said fully linked program image of said designated program and related library programs with a list of program identifiers and related addresses comprising an identifier and related address for said designated program and for each of said related library programs; and mapping said fully-linked program image of said designated program and each of said provisionally fixed-up library programs at said related addresses from said list of program identifiers.
Claim 4
Dependent Claim
152 words
The method of claim 2 wherein if said provisionally fixed-up library programs is not found in said library cache, then the method further comprises the following steps: selecting an address to which to link related library programs; generating an unlinked copy of said related library programs; provisionally fixing-up relocation symbols in said copy of said related library programs; linking said provisionally fixed-up library programs with each other and with said unlinked designated program to create said fully linked program image of said designated program and related library programs with a list of program identifiers and related addresses comprising an identifier and related address for said designated program and for each of said related library programs; mapping said fully-linked program image of said designated program and each of said related library programs at said related addresses from said list of program identifiers; and adding said provisionally fixed-up library programs to said library cache.
Claim 5
Dependent Claim
56 words
The method of claim 3 wherein if said program image is not found in said image cache then the method further comprises the steps of: adding to said image cache said fully-linked program image with said provisionally fixed-up library programs and said list of program identifiers and related addresses for subsequent retrieval by said linking system.
Claim 6
Dependent Claim
12 words
The method of claim 4 wherein all programs are object oriented programs.
Claim 7
Independent Claim
239 words
A method of efficiently generating a fully-linked program image of a designated program and related library programs using a dynamic linking system having a library cache and an image cache, the method being implemented in a computer system, the method including the steps of: invoking said linking system with parameters representing an unlinked program image of said designated program; searching for said fully-linked program image of said designated program and said related library programs in said image cache; and if said fully-linked program image is not found in said image cache, then the method further including the steps of: generating an unlinked copy of said designated program; searching for a provisionally fixed-up copy of said related library programs in said library cache; and if said provisionally fixed-up library programs is found in said library cache, then the method further including the steps of: retrieving said provisionally fixed-up library programs from said library cache; linking said provisionally fixed up library programs with each other and with said unlinked designated program to create said fully linked program image of said designated program and related library programs with a list of program identifiers and related addresses comprising an identifier and related address for said designated program and for each of said related library programs; and mapping said fully-linked program image of said designated program and each of said provisionally fixed-up library programs at said related addresses from said list of program identifiers.
Claim 8
Independent Claim
239 words
A method of efficiently generating a fully-linked program image of a designated program and related library programs using a dynamic linking system having a library cache and an image cache, the method being implemented in a computer system, the method including the steps of: invoking said linking system with parameters representing an unlinked program image of said designated program; searching for said fully-linked program image of said designated program and said related library programs in said image cache; and if said fully-linked program image is not found in said image cache, then the method further including the steps of: generating an unlinked copy of said designated program; searching for a provisionally fixed-up copy of said related library programs in said library cache; and if said provisionally fixed-up library programs is found in said library cache, then the method further including the steps of: retrieving said provisionally fixed-up library programs from said library cache; linking said provisionally fixed up library programs with each other and with said unlinked designated program to create said fully linked program image of said designated program and related library programs with a list of program identifiers and related addresses comprising an identifier and related address for said designated program and for each of said related library programs; and mapping said fully-linked program image of said designated program and each of said provisionally fixed-up library programs at said related addresses from said list of program identifiers.
Claim 9
Dependent Claim
152 words
The method of claim 6 wherein if the provisionally fixed-up library programs is not found in said library cache, then the method further comprises the following steps: selecting an address to which to link related library programs; generating an unlinked copy of said related library programs; provisionally fixing-up relocation symbols in said copy of said related library programs; linking said provisionally fixed-up library programs with each other and with said unlinked designated program to create said fully linked program image of said designated program and related library programs with a list of program identifiers and related addresses comprising an identifier and related address for said designated program and for each of said related library programs; mapping said fully-linked program image of said designated program and each of said related library programs at said related addresses from said list of program identifiers; and adding said provisionally fixed-up library programs to said library cache.
Claim 10
Dependent Claim
12 words
The method of claim 7 wherein all programs are object oriented programs.
Claim 11
Dependent Claim
40 words
The method of claim 1 wherein said step of searching for said fully-linked program image in said image cache comprises the step of: checking said image cache for a key which matches said designated program and said related library programs.
Claim 12
Dependent Claim
75 words
The method of claim 2 wherein said step of searching for a provisionally fixed-up copy of said related library programs includes the additional steps of: creating a first name list containing names of said library programs which are related to said designated program; and resolving each of said names of said library programs contained on said first list into a library program identifier and adding each of said library program identifiers to a second list.
Claim 13
Dependent Claim
71 words
The method of claim 10 wherein said step of retrieving said provisionally fixed-up library programs includes the additional steps of: checking said library cache for a match for each library program identifier in said second list; obtaining a matching library program from said library cache in the event that a matching library program identifier is found; and adding said matching library program identifier from said library cache to a third list.
Claim 14
Dependent Claim
141 words
The method of claim 11 comprising the additional steps of: selecting an address to which to link related library programs identified in said second list in the event that a matching library program identifier is not found in said library cache; generating an unlinked copy of said related library programs; provisionally fixing-up relocation symbols in said copy of said related library programs; linking said provisionally fixed-up library programs with each other and with said unlinked designated program to create said fully linked program image of said designated program and related library programs with a list of program identifiers and related addresses comprising an identifier and related address for said designated program and for each of said related library programs; adding said provisionally fixed-up library programs to said library cache; and adding said provisionally fixed-up library program identifier to said third list.
Claim 15
Dependent Claim
91 words
The method of claim 12 comprising the additional steps of: making a copy of said program image and adding an identifier of said copy of said program image to a fourth list, said copy of said program image having a symbol table and a relocation table; and making a copy of each of said library programs from said third list and adding an identifier of said copy of said library programs to said fourth list, each of said copies of said library programs having a symbol table and a relocation table.
Claim 16
Dependent Claim
78 words
The method of claim 13 comprising the additional steps of: finding each symbol to be relocated in said copy of said program image; and searching all of said library programs identified in said fourth list and in the event that a first symbol definition which matches said symbol to be relocated is found, using an address of said first symbol definition which matches said symbol to be relocated, to perform a relocation for said symbol to be relocated.
Claim 17
Dependent Claim
193 words
The method of claim 14 comprising the additional steps of: using said symbol table in each of said library programs identified in said fourth list in turn, starting with a first of said library programs identified in said fourth list, comparing each symbol of said symbol table to said program image's symbol table and marking a symbol in said library program's symbol table as overridden in the event that said symbol matches a symbol in said program image's symbol table; comparing each symbol of each of said symbol tables to all of said symbol tables of said library programs identified in said fourth list which are higher in said fourth list than said symbol table being checked and which have been marked as already checked; upon completion of the check of said symbol table of each of said library program identified in said fourth list, marking said library program's identifier in said fourth list as one whose symbol table has been checked; and comparing said symbols in said symbol tables in each of said library programs identified in said fourth list in like manner until all of said symbol tables have been compared.
Claim 18
Dependent Claim
192 words
The method of claim 15 comprising the additional steps of: using said relocation table in each of said programs identified in said fourth list in turn, starting with a first of said programs identified in said fourth list, scanning each of said relocation tables to find an undefined symbol; in the event that a symbol in one of said relocation tables is a defined symbol, checking said defined symbol and in the event said defined symbol has been marked as overridden, undoing a relocation address for said defined symbol which has been marked as overridden; using each undefined symbol and each defined symbol whose relocation address was undone, as a search argument, checking said symbol table of said copy of said program image and said symbol tables of each of said library programs identified in said fourth list to find a symbol matching said search argument, and in the event said matching symbol is found, using said found symbol's address to perform said address relocation for said symbol which was used as said search argument; and providing an exception message in the event no symbol is found to match said search argument.
Claim 19
Dependent Claim
61 words
The method of claim 16 comprising the additional steps of: creating a cachable list of program identifiers, containing a copy of said designated program image and each of said library programs identified in said fourth list; entering said cachable list of program identifiers into said image cache; and returning said cachable list of program identifiers in response to said linking system.
Claim 20
Dependent Claim
19 words
The method of claim 17 wherein said programs are objects and said computing system is an object oriented system.
Claim 21
Dependent Claim
15 words
The method of claim 18 wherein said identifiers and said program identifiers are memory objects.
Claim 22
Independent Claim
213 words
A method of efficiently generating a fully-linked program image of a designated program and related library programs using a dynamic linking system having a library cache and an image cache, the method being implemented in a computer system, the method including the steps of: invoking said linking system with parameters representing an unlinked program image of said designated program; searching for said fully-linked program image of said designated program and said related library programs in said image cache; and if said fully-linked program image is not found in said image cache, then the method further including the steps of: checking a library cache for a provisionally fixed-up copy of said related library programs and in the event that said library cache contains said provisionally fixed-up related library programs retrieving said provisionally fixed up library programs; and if said provisionally fixed up library programs is not found in said library cache, then the method further including the steps of: creating a list of library program identifiers and related addresses from said library cache; linking each of said library programs to each other and to said program image to create said fully-linked program image; and mapping said fully-linked program image identified by said program identifiers at said related address from said list of program identifiers.
Claim 23
Independent Claim
213 words
A method of efficiently generating a fully-linked program image of a designated program and related library programs using a dynamic linking system having a library cache and an image cache, the method being implemented in a computer system, the method including the steps of: invoking said linking system with parameters representing an unlinked program image of said designated program; searching for said fully-linked program image of said designated program and said related library programs in said image cache; and if said fully-linked program image is not found in said image cache, then the method further including the steps of: checking a library cache for a provisionally fixed-up copy of said related library programs and in the event that said library cache contains said provisionally fixed-up related library programs retrieving said provisionally fixed up library programs; and if said provisionally fixed up library programs is not found in said library cache, then the method further including the steps of: creating a list of library program identifiers and related addresses from said library cache; linking each of said library programs to each other and to said program image to create said fully-linked program image; and mapping said fully-linked program image identified by said program identifiers at said related address from said list of program identifiers.
Claim 24
Dependent Claim
128 words
The method of claim 20 wherein said step of creating a list of library program identifiers and related addresses from said library program cache comprises the additional steps of: creating a first list containing names of said library programs which are related to said designated program; resolving each of said names of said library programs contained on said first list into a library program identifier and adding each of said library program identifiers to a second list; checking said library cache for a match for each library program identifier in said second list; obtaining a matching library program from said library cache in the event that a matching library program identifier is found; and adding said matching library program identifier from said library cache to a third list.
Claim 25
Dependent Claim
84 words
The method of claim 21 comprising the additional steps of: selecting an address to which to link related library programs identified in said second list in the event that a matching library program identifier is not found in said library cache; generating an unlinked copy of said related library programs; provisionally fixing-up relocation symbols in said copy of said related library programs; adding said provisionally fixed-up library programs to said library cache; and adding said provisionally fixed-up library program identifier to said third list.
Claim 26
Dependent Claim
91 words
The method of claim 22 comprising the additional steps of: making a copy of said program image and adding an identifier of said copy of said program image to a fourth list, said copy of said program image having a symbol table and a relocation table; and making a copy of each of said library programs from said third list and adding an identifier of said copy of said library programs to said fourth list, each of said copies of said library programs having a symbol table and a relocation table.
Claim 27
Dependent Claim
78 words
The method of claim 23 comprising the additional steps of: finding each symbol to be relocated in said copy of said program image; and searching all of said library programs identified in said fourth list and in the event that a first symbol definition which matches said symbol to be relocated is found, using an address of said first symbol definition which matches said symbol to be relocated, to perform a relocation for said symbol to be relocated.
Claim 28
Dependent Claim
193 words
The method of claim 24 comprising the additional steps of: using said symbol table in each of said library programs identified in said fourth list in turn, starting with a first of said library programs identified in said fourth list, comparing each symbol of said symbol table to said program image's symbol table and marking a symbol in said library program's symbol table as overridden in the event that said symbol matches a symbol in said program image's symbol table; comparing each symbol of each of said symbol tables to all of said symbol tables of said library programs identified in said fourth list which are higher in said fourth list than said symbol table being checked and which have been marked as already checked; upon completion of the check of said symbol table of each of said library program identified in said fourth fist, marking said library program's identifier in said fourth list as one whose symbol table has been checked; and comparing said symbols in said symbol tables in each of said library programs identified in said fourth list in like manner until all of said symbol tables have been compared.
Claim 29
Dependent Claim
195 words
The method of claim 25 comprising the additional steps of: using said relocation table in each of said programs identified in said fourth list in turn, starting with a first of said programs identified in said fourth list, scanning each of said relocation tables to find an undefined symbol; in the event that a symbol in one of said relocation tables is a defined symbol, checking said defined symbol a second time and in the event said defined symbol has been marked as overridden, undoing a relocation address for said defined symbol which has been marked as overridden; using each undefined symbol and each defined symbol whose relocation address was undone as a search argument, checking said symbol table of said copy of said program image and said symbol tables of each of said library programs identified in said fourth list to find a symbol matching said search argument, and in the event said matching symbol is found, using said found symbol's address to perform said address relocation for said symbol which was used as said search argument; and providing an exception message in the event no symbol is found to match said search argument.
Claim 30
Dependent Claim
50 words
The method of claim 26 comprising the additional steps of: creating a cachable list of program identifiers, containing a copy of said designated program image and each of said library programs identified in said fourth list; and returning said cachable list of program identifiers in response to said linking system.
Claim 31
Dependent Claim
19 words
The method of claim 27 wherein said programs are objects and said computing system is an object oriented system.
Claim 32
Dependent Claim
15 words
The method of claim 28 wherein said identifiers and said program identifiers are memory objects.
Claim 33
Dependent Claim
163 words
An image caching system for providing a fully-linked program image of a designated program and related library programs to a dynamic linking system, the caching system being implemented in a computer system, the image caching system comprising: an image cache for caching said fully-linked program image with a list of program identifiers and related addresses for each said related library program, said list for mapping said fully-linked program image; a first searching facility, coupled to said image cache, for searching said image cache to determine whether said image cache contains said fully-linked program image, said search being made in response to a request to link said designated program; and a first communications facility, coupled to said first searching facility, for responding to said request to link said designated program, said response containing said list of program identifiers and addresses related to said program identifiers obtained from said image cache in the event that said fully linked-program image is found in said image cache.
Claim 34
Dependent Claim
163 words
An image caching system for providing a fully-linked program image of a designated program and related library programs to a dynamic linking system, the caching system being implemented in a computer system, the image caching system comprising: an image cache for caching said fully-linked program image with a list of program identifiers and related addresses for each said related library program, said list for mapping said fully-linked program image; a first searching facility, coupled to said image cache, for searching said image cache to determine whether said image cache contains said fully-linked program image, said search being made in response to a request to link said designated program; and a first communications facility, coupled to said first searching facility, for responding to said request to link said designated program, said response containing said list of program identifiers and addresses related to said program identifiers obtained from said image cache in the event that said fully linked-program image is found in said image cache.
Claim 35
Dependent Claim
61 words
The image caching system as recited in claim 30 further comprising: a library cache, coupled to said image cache, for caching provisionally fixed-up library programs; and a second searching facility, coupled to said library cache, for searching said library cache to determine whether at least one of said provisionally fixed-up library programs matches at least one of said related library programs.
Claim 36
Dependent Claim
52 words
The image caching system as recited in claim 31 wherein said search of said library cache is made in the event that said fully-linked program image is not found in said image cache which matches said designated program, and wherein said first searching facility obtains an unlinked copy of said designated program.
Claim 37
Dependent Claim
61 words
The image caching system as recited in claim 32 further comprising: a first linking facility, coupled to said second searching facility, for linking a found library program to said unlinked program image, in the event that at least one of said provisionally fixed-up library programs is found in said library cache which matches at least one of said related library programs.
Claim 38
Dependent Claim
90 words
The image caching system as recited in claim 33 further comprising: a third searching facility, coupled to said second searching facility, for finding unlinked library programs in the event that a library program is not found in said library cache which matches said related library programs; and a second linking facility, coupled to said third searching facility, for linking said unlinked library programs to each other and to said found library programs and to said unlinked program image, producing fully-linked program image of said designated program with related library programs.
Claim 39
Dependent Claim
51 words
The image caching system as recited in claim 34 wherein: said second linking facility provisionally fixes-up any of said unlinked library programs and stores said provisionally fixed-up library programs in said library cache; and said second linking facility stores said fully-linked program image with related library programs in said image cache.
Claim 40
Dependent Claim
20 words
The image caching system as recited in claim 35 wherein said designed program and library programs are object oriented programs.
Claim 41
Dependent Claim
161 words
An image caching system for providing provisionally fixed-up library programs to a dynamic linking system for linking with an unlinked program image of a designated program to create a fully-linked program image, of said designated program, the caching system being implemented in a computer system, the image caching system comprising: a library cache for caching provisionally fixed-up library programs; a first searching facility, coupled to said library cache, for searching said library cache to determine whether at least one of said provisionally fixed-up library programs matches at least one of said related library programs, said search being made in response to a request to link said designated program when said fully-linked program image of said designated program is not found by the dynamic linking system; and a first linking facility, coupled to said first said searching facility, for linking a found library program to said designated program, in the event that said found library program is found in said library cache.
Claim 42
Dependent Claim
161 words
An image caching system for providing provisionally fixed-up library programs to a dynamic linking system for linking with an unlinked program image of a designated program to create a fully-linked program image, of said designated program, the caching system being implemented in a computer system, the image caching system comprising: a library cache for caching provisionally fixed-up library programs; a first searching facility, coupled to said library cache, for searching said library cache to determine whether at least one of said provisionally fixed-up library programs matches at least one of said related library programs, said search being made in response to a request to link said designated program when said fully-linked program image of said designated program is not found by the dynamic linking system; and a first linking facility, coupled to said first said searching facility, for linking a found library program to said designated program, in the event that said found library program is found in said library cache.
Claim 43
Dependent Claim
49 words
The image caching system as recited in claim 37 wherein said first searching facility further comprises: a second searching facility, coupled to said library cache, for searching said library cache to determine whether said library cache contains an unlinked library program which matches one of said related library program.
Claim 44
Dependent Claim
82 words
The image caching system as recited in claim 37 further comprising: a second searching facility, coupled to said memory of said computer, for finding said unlinked library programs which matches said related library programs; and a second linking facility, coupled to said second searching facility, for linking said unlinked library programs to each other and to said found library programs and to said unlinked copy of said designated program, producing a fully-linked program image of said designated program with related library programs.
Claim 45
Dependent Claim
33 words
The image caching system as recited in claim 39 wherein: said second linking facility provisionally fixes-up any of said unlinked library programs and stores said provisionally fixed-up library programs in said library cache.
Claim 46
Dependent Claim
23 words
The Dynamic Linking system as recited in claim 40 wherein said library programs in said library program cache are partially linked library programs.
Claim 47
Dependent Claim
21 words
The Dynamic Linking system as recited in claim 41 wherein said application programs and said library programs are object oriented programs.