Claims Analysis
Total Claims: 5
Claim 1
Independent Claim
336 words
A method of operating a digital computer for partially translating an original computer program to provide a translated program, and executing said translated program with an interpreter to interpret untranslated portions of said original computer program, 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 computer destination addresses that are not determined until program execution, said method comprising the steps of: (a) automatically translating said original program to generate said translated program, said original program having an execution transfer instruction including a computed destination address, the automatic translation of said original program including translating said execution transfer instruction having a computed destination address into an instruction transferring execution to an interpreter program for interpreting said original program beginning at said computed destination address; (b) executing said translated program, and when execution is transferred to said interpreter by execution of said instruction transferring execution to said interpreter, executing said interpreter to interpret instructions in said original program; and (c) when an address of a next instruction about to be interpreted in said original program is an address defined as having a corresponding address in said translated program, transferring execution to said translated program, beginning at said corresponding address in said translated program, wherein said step (a) of automatically translating includes generating a flowgraph including blocks of said instructions in said original program, said flowgraph including blocks of said instructions and execution paths between said blocks, and translating each of said blocks into instructions in said translated program, a first address in each of said blocks of said instructions being defined as having a corresponding address in said translated program, and said step (c) returns execution to said translated program when interpretation by said interpreter reaches a first instruction in one of said blocks of instruction in said flowgraph.
Claim 2
Independent Claim
336 words
A method of operating a digital computer for partially translating an original computer program to provide a translated program, and executing said translated program with an interpreter to interpret untranslated portions of said original computer program, 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 computer destination addresses that are not determined until program execution, said method comprising the steps of: (a) automatically translating said original program to generate said translated program, said original program having an execution transfer instruction including a computed destination address, the automatic translation of said original program including translating said execution transfer instruction having a computed destination address into an instruction transferring execution to an interpreter program for interpreting said original program beginning at said computed destination address; (b) executing said translated program, and when execution is transferred to said interpreter by execution of said instruction transferring execution to said interpreter, executing said interpreter to interpret instructions in said original program; and (c) when an address of a next instruction about to be interpreted in said original program is an address defined as having a corresponding address in said translated program, transferring execution to said translated program, beginning at said corresponding address in said translated program, wherein said step (a) of automatically translating includes generating a flowgraph including blocks of said instructions in said original program, said flowgraph including blocks of said instructions and execution paths between said blocks, and translating each of said blocks into instructions in said translated program, a first address in each of said blocks of said instructions being defined as having a corresponding address in said translated program, and said step (c) returns execution to said translated program when interpretation by said interpreter reaches a first instruction in one of said blocks of instruction in said flowgraph.
Claim 3
Dependent Claim
64 words
The method as claimed in claim 1, wherein step (c) includes accessing a conversion table to determine when interpretation by said interpreter reaches said first instruction in one of said blocks of instructions in said flowgraph, said conversion table including addresses which are each a first address of one of said blocks of instructions in said flowgraph, and corresponding addresses in said translated program.
Claim 4
Dependent Claim
228 words
A digital computer programmed to execute a translated program that is a partial translation of an original computer program, and to interpret said original program, 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 until execution of 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 being loaded with said translated program, an interpreter program for interpreting untranslated portions of said original program, and address conversion information defining program addresses in said original program and corresponding addresses in said translated program; said translated program including instructions for transferring execution to said interpreter for interpretation of untranslated portions of said original program; and said interpreter including instructions for accessing said address conversion information and transferring execution to a corresponding address in said translated program when interpretation of said original program reaches a program address in said original program defined by said address conversion information, wherein said interpreter includes instructions for transferring execution to said translated program when an address of a next instruction about to be interpreted in said original program is an address defined in said address conversion information as having a corresponding address in said translated program.
Claim 5
Dependent Claim
228 words
A digital computer programmed to execute a translated program that is a partial translation of an original computer program, and to interpret said original program, 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 until execution of 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 being loaded with said translated program, an interpreter program for interpreting untranslated portions of said original program, and address conversion information defining program addresses in said original program and corresponding addresses in said translated program; said translated program including instructions for transferring execution to said interpreter for interpretation of untranslated portions of said original program; and said interpreter including instructions for accessing said address conversion information and transferring execution to a corresponding address in said translated program when interpretation of said original program reaches a program address in said original program defined by said address conversion information, wherein said interpreter includes instructions for transferring execution to said translated program when an address of a next instruction about to be interpreted in said original program is an address defined in said address conversion information as having a corresponding address in said translated program.