Patent ReferencesCondition code graph analysis for simulating a CPU processor User interactive control of computer programs and corresponding versions of input/output data flow Method and apparatus for dynamically linking subprogram to main program using tabled procedure name comparison Patent #: 5175828 InventorAssigneeApplicationNo. 618573 filed on 03/20/1996US Classes:717/144, Including graph or tree representation (e.g., abstract syntax tree or AST)703/26, Of instruction715/504, Cell format control717/156Using flow graphExaminersPrimary: Donaghue, Larry D.Attorney, Agent or FirmForeign Patent References
International ClassG06F 005/00AbstractIt is not always possible or practical to fully translate an original computer program because execution transfer instructions may have computed destination addresses that cannot be determined until program execution. Instead, a digital computer alternately executes a translated program that is a partial translation of the original computer program, and interprets the original program. When execution of the translated program specifies a transfer to an untranslated portion of the original program, execution is transferred to an interpreter to interpret the original program. When interpretation of the original program reaches a portion of the original program having been translated, execution is transferred to the translated program. In a preferred embodiment, the original program is partially translated by automatically generating a flowgraph, and using the flowgraph to analyze the program to provide information about blocks of instructions in the flowgraph. An execution transfer instruction having a computed destination address that cannot be determined prior to execution is translated as an execution transfer to the interpreter for beginning interpretation at the computed destination address in the original program. When interpretation of the original program reaches a block entry point in a conversion table, execution is transferred to the translated program, beginning at a corresponding block entry point in the translated program.Other References
| |