Claims Analysis
Total Claims: 20
Claim 1
Independent Claim
400 words
A method of operating a digital computer for translating and re-translating an original computer program from one computer program language to another computer program language, said original computer program language including program instructions at respective program addresses in said original computer program, the program addresses of some of said program instructions being unknown when translating said original computer program because said program instructions include execution transfer instructions specifying transfers of program execution to respective computed destination addresses that are computed during program execution, said method comprising the steps of: (a) translating a portion of the instructions in said original computer program to provide a translated computer program, said portion of the instructions including at least one of said execution transfer instructions, and translating said one of said execution transfer instructions as a call to an interpreter program for interpreting instructions in said computer program beginning at a computed destination address of said one of said execution transfer instructions; (b) executing said translated program together with said interpreter program, and when said interpreter program is called to interpret said original program beginning at said computer destination address of said one of said execution transfer instructions, recording an indication of a value of said computed destination address; and (c) re-translating said original computer program including previously untranslated instructions that begin at the value of said computed destination address indicated by the recorded indication to provide a re-translated computer program, further comprising the steps of: (d) re-executing said re-translated computer program together with said interpreter program, and whenever said interpreter program is called to interpret said original computer program beginning at a computed destination address of said one of said execution transfer instructions, recording an indication of value of said computed destination address; and then (e) testing whether an indication of a value of a computed destination address was recorded during the re-execution of said re-translated computer program together with said interpreter program, and upon finding that an indication of a value of a computed destination was so recorded, re-translating said original computer program including previously-untranslated instructions that begin at the value of the computed destination address indicated by the indication recorded during the re-execution of said re-translated computer program, and upon finding that an indication of a value of a computed destination was not so recorded, not again re-translating said original computer program before re-executing a re-translation of said original computer program.
Claim 2
Independent Claim
400 words
A method of operating a digital computer for translating and re-translating an original computer program from one computer program language to another computer program language, said original computer program language including program instructions at respective program addresses in said original computer program, the program addresses of some of said program instructions being unknown when translating said original computer program because said program instructions include execution transfer instructions specifying transfers of program execution to respective computed destination addresses that are computed during program execution, said method comprising the steps of: (a) translating a portion of the instructions in said original computer program to provide a translated computer program, said portion of the instructions including at least one of said execution transfer instructions, and translating said one of said execution transfer instructions as a call to an interpreter program for interpreting instructions in said computer program beginning at a computed destination address of said one of said execution transfer instructions; (b) executing said translated program together with said interpreter program, and when said interpreter program is called to interpret said original program beginning at said computer destination address of said one of said execution transfer instructions, recording an indication of a value of said computed destination address; and (c) re-translating said original computer program including previously untranslated instructions that begin at the value of said computed destination address indicated by the recorded indication to provide a re-translated computer program, further comprising the steps of: (d) re-executing said re-translated computer program together with said interpreter program, and whenever said interpreter program is called to interpret said original computer program beginning at a computed destination address of said one of said execution transfer instructions, recording an indication of value of said computed destination address; and then (e) testing whether an indication of a value of a computed destination address was recorded during the re-execution of said re-translated computer program together with said interpreter program, and upon finding that an indication of a value of a computed destination was so recorded, re-translating said original computer program including previously-untranslated instructions that begin at the value of the computed destination address indicated by the indication recorded during the re-execution of said re-translated computer program, and upon finding that an indication of a value of a computed destination was not so recorded, not again re-translating said original computer program before re-executing a re-translation of said original computer program.
Claim 3
Independent Claim
42 words
The method as claimed in 1, further comprising saving information derived during the step (a) of translating said original computer program and using the information during said step (c) of re-translating said original computer program to facilitate re-translating said original computer program.
Claim 4
Dependent Claim
37 words
The method as claimed in claim 2, wherein said step a) of translating said original computer program includes building a flowgraph of translated instructions in said original computer program, and said information is information about said flowgraph.
Claim 5
Dependent Claim
46 words
The method as claimed in claim 2, wherein said step a) of translating said original computer program includes determining effects of calling entry points in said original program, and said information is information about the effects of calling the entry points in said original computer program.
Claim 6
Independent Claim
106 words
The method as claimed in 1, wherein said step of (b) of executing said translated computer program together with said interpreter program further includes recording, together with the indication of the value of said computed destination address, an indication of the address in the original computer program of said one of said execution transfer instructions, and wherein said step (c) of retranslating said original computer program further includes using the recorded indication of the value of the address in the original computer program together with the recorded indication of the value of said computed destination address to assist in the re-translation of the original computer program.
Claim 7
Dependent Claim
100 words
The method as claimed in claim 5, wherein said step c) of re-translating said original computer program includes using a flowgraph of translated instructions in said original computer program to assist in the re-translation of the original computer program, and wherein the recorded indication of the value of the address in the original computer program together with the recorded indication of the value of said computed destination address is used to augment said flowgraph by linking instructions beginning at said value of said computed destination address to a block in said flowgraph including said one of said execution transfer instructions.
Claim 8
Dependent Claim
127 words
The method as claimed in claim 1, wherein said step (b) of executing said translated computer program together with said interpreter program further includes recording, together with the indication of the value of said computed destination address, an indication of the address in the original computer program of said one of said execution transfer instructions, and wherein the indication of the value of said computed destination address and the indication of the address in the original computer program of said one of said execution transfer instructions is recorded in an execution log file together with indications of program addresses and destination addresses of other execution transfer instructions in said original computer program that have computed destinations that are addresses of untranslated instructions in said original computer program.
Claim 9
Independent Claim
266 words
A method of operating a digital computer for translating and re-translating an original computer program from one computer program language to another computer program language, said original computer program including program instructions at respective program addresses in said original computer program, the program addresses of some of said program instructions being unknown when translating said original computer program because said program instructions include execution transfer instructions specifying transfers of program execution to respective computed destination addresses that are computed during program execution, said method comprising the steps of: a) creating a flowgraph of a portion of the original computer program, and translating the instructions in the portion of the original computer program in the flowgraph to provide a translated computer program, said instructions in the portion of the original computer program in the flowgraph including at least one of said execution transfer instructions, and translating said one of said execution transfer instructions as a call to an interpreter program for interpreting instructions in said original computer program beginning at a computed destination address of said one of said execution transfer instructions; and then b) executing said translated program together with said interpreter program, and when said interpreter program is called to interpret said original program beginning at said computed destination address of said one of said execution transfer instructions, recording an indication of the value of said computed destination address; and then c) using said flowgraph to re-translate said original computer program including previously-untranslated instructions that begin at the value of said computed destination address indicated by the recorded indication to provide a re-translated computer program.
Claim 10
Independent Claim
266 words
A method of operating a digital computer for translating and re-translating an original computer program from one computer program language to another computer program language, said original computer program including program instructions at respective program addresses in said original computer program, the program addresses of some of said program instructions being unknown when translating said original computer program because said program instructions include execution transfer instructions specifying transfers of program execution to respective computed destination addresses that are computed during program execution, said method comprising the steps of: a) creating a flowgraph of a portion of the original computer program, and translating the instructions in the portion of the original computer program in the flowgraph to provide a translated computer program, said instructions in the portion of the original computer program in the flowgraph including at least one of said execution transfer instructions, and translating said one of said execution transfer instructions as a call to an interpreter program for interpreting instructions in said original computer program beginning at a computed destination address of said one of said execution transfer instructions; and then b) executing said translated program together with said interpreter program, and when said interpreter program is called to interpret said original program beginning at said computed destination address of said one of said execution transfer instructions, recording an indication of the value of said computed destination address; and then c) using said flowgraph to re-translate said original computer program including previously-untranslated instructions that begin at the value of said computed destination address indicated by the recorded indication to provide a re-translated computer program.
Claim 11
Dependent Claim
106 words
The method as claimed in claim 8, wherein said step b) of executing said translated computer program together with said interpreter program further includes recording, together with the indication of the value of said computed destination address, an indication of the address in the original computer program of said one of said execution transfer instructions, and wherein said step c) of re-translating said original computer program further includes using the recorded indication of the value of the address in the original computer program together with the recorded indication of the value of said computed destination address to assist in the re-translation of the original computer program.
Claim 12
Dependent Claim
67 words
The method as claimed in claim 9, wherein the recorded indication of the value of the address in the original computer program together with the recorded indication of the value of said computed destination address is used to augment said flowgraph by linking instructions beginning at said value of said computed destination address to a block in said flowgraph including said one of said execution transfer instructions.
Claim 13
Dependent Claim
242 words
A digital computer system for translating and re-translating an original computer program from one computer program language to another computer program language, said original computer program including program instructions at respective program addresses in said original computer program, the program addresses of some of said program instructions being unknown when translating said original computer program because said program instructions include execution transfer instructions specifying transfers of program execution to respective computed destination addresses that are computed during program execution, said digital computer system comprising: a) means for translating a portion of the instructions in said original computer program to provide a translated computer program, said portion of the instructions including at least one of said execution transfer instructions, and translating said one of said execution transfer instructions as a call to an interpreter program for interpreting instructions in said original computer program beginning at a computed destination address of said one of said execution transfer instructions; and b) means for executing said translated program together with interpreter program, and when said interpreter program is called to interpret said original program beginning at said computed destination address of said one of said execution transfer instructions, recording an indication of a value of said computed destination address; wherein said means for translating includes means for re-translating said original computer program including previously-untranslated instructions that begin at the value of said computed destination address indicated by the recorded indication to provide a re-translated computer program.
Claim 14
Dependent Claim
242 words
A digital computer system for translating and re-translating an original computer program from one computer program language to another computer program language, said original computer program including program instructions at respective program addresses in said original computer program, the program addresses of some of said program instructions being unknown when translating said original computer program because said program instructions include execution transfer instructions specifying transfers of program execution to respective computed destination addresses that are computed during program execution, said digital computer system comprising: a) means for translating a portion of the instructions in said original computer program to provide a translated computer program, said portion of the instructions including at least one of said execution transfer instructions, and translating said one of said execution transfer instructions as a call to an interpreter program for interpreting instructions in said original computer program beginning at a computed destination address of said one of said execution transfer instructions; and b) means for executing said translated program together with interpreter program, and when said interpreter program is called to interpret said original program beginning at said computed destination address of said one of said execution transfer instructions, recording an indication of a value of said computed destination address; wherein said means for translating includes means for re-translating said original computer program including previously-untranslated instructions that begin at the value of said computed destination address indicated by the recorded indication to provide a re-translated computer program.
Claim 15
Dependent Claim
46 words
The digital computer system as claimed in claim 11, wherein said means for translating includes means for saving information derived during translating said original computer program, and means for using the saved information during re-translating said original computer program to facilitate re-translating said original computer program.
Claim 16
Dependent Claim
40 words
The digital computer system as claimed in claim 12, wherein said means for translating further includes means for building a flowgraph of translated instructions in said original computer program, and wherein said means for saving saves information about said flowgraph.
Claim 17
Dependent Claim
47 words
The digital computer system claimed in claim 12, wherein said means for translating further includes means for determining effects of calling entry points in said original program, and said means for saving saves information about the effects of calling the entry points in said original computer program.
Claim 18
Dependent Claim
100 words
The digital computer system as claimed in claim 11, wherein said means for executing includes means for recording, together with the indication of the value of said computed destination address, an indication of the address in the original computer program of said one of said execution transfer instructions, and wherein said means for re-translating said original computer program further includes means for using the recorded indication of the value of the address in the original computer program together with the recorded indication of the value of said computed destination address to assist in the retranslation of the original computer program.
Claim 19
Dependent Claim
103 words
The digital computer system as claimed in claim 14, wherein said means for re-translating said original computer program includes means for using a flowgraph of translated instructions in said original computer program to assist in the re-translation of the original computer program and means for using the recorded indication of the value of the address in the original computer program together with the recorded indication of the value of said computed destination address to augment said flowgraph by linking instructions beginning at said value of said computed destination address to a block in said flowgraph including said one of said execution transfer instructions.
Claim 20
Dependent Claim
130 words
The digital computer system as claimed in claim 11, wherein said means for executing said translated computer program together with said interpreter program further includes means for recording, together with the indication of the value of said computed destination address, an indication of the address in the original computer program of said one of said execution transfer instructions, and wherein the indication of the value of said computed destination address and the indication of the address in the original computer program of said one of said execution transfer instructions is recorded in an execution log file together with indications of program addresses and destination addresses of other execution transfer instructions in said original computer program that have computed destinations that are addresses of untranslated instructions in said original computer program.