Attempting runtime retranslation of unresolvable code
First Claim
Patent Images
1. A method of executing computer program code, the method comprising:
- executing program code received in an input stream, the program code comprising translated code, untranslated code, and placed code, wherein the translated code comprises portions of the computer program translated from a first language representation into a second language representation, wherein the untranslated code comprises one or more unresolvable instructions that could not be translated from the first language representation into the second language representation during a first translation attempt, wherein the placed code comprises handling instructions located in the program code where the unresolvable code would have been placed in the translated code and which when executed will request a second translation of the untranslated code;
while executing the program code, requesting by executing the handling instructions a re-translation of the untranslated code in the input stream from the first language representation into the second language representation; and
executing the second language representation of the previously un-translated code.
1 Assignment
0 Petitions
Accused Products
Abstract
A compiler that completes compilation upon identifying unresolvable input during compilation instead of aborting compilation. This can be accomplished by inserting an exception-throwing instruction, and/or handlers in place of the unresolvable input in the compiled code output. If the section of the compiled code containing the inserted exception throwing instruction is later executed, an exception is thrown and/or handled. Compilation of code from a trusted source can be completed without inserting an exception throwing instruction when the code has only suspected but unverifiable problems.
41 Citations
18 Claims
-
1. A method of executing computer program code, the method comprising:
-
executing program code received in an input stream, the program code comprising translated code, untranslated code, and placed code, wherein the translated code comprises portions of the computer program translated from a first language representation into a second language representation, wherein the untranslated code comprises one or more unresolvable instructions that could not be translated from the first language representation into the second language representation during a first translation attempt, wherein the placed code comprises handling instructions located in the program code where the unresolvable code would have been placed in the translated code and which when executed will request a second translation of the untranslated code; while executing the program code, requesting by executing the handling instructions a re-translation of the untranslated code in the input stream from the first language representation into the second language representation; and executing the second language representation of the previously un-translated code. - View Dependent Claims (2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12)
-
-
13. A computer readable storage medium storing computer executable instructions which, when executed on a computing device, cause the computing device to perform the actions of:
-
a computer language translation program; a computer program comprising placed code and translated code, the translated code comprising portions of the computer program translated into object code from an intermediate language representation; wherein; the placed code is located where the unresolvable code would have been placed in the translated code and comprises handling instructions indicating at least one unresolvable instruction of the computer program that could not be translated from the intermediate language representation into object code in a first translation attempt; and the handling instructions further comprise instructions for invoking the computer language translation program to attempt a second translation of the at least one unresolvable instruction out of the computer program from an intermediate language representation into object code, and further for causing the object code of the re-translated program code to be executed. - View Dependent Claims (14, 15)
-
-
16. In a computer system:
-
a digital processor coupled to computer memory; and the computer memory comprising; a translation program and a computer program, the computer program comprising translated code, untranslated code, and placed code, the translated code comprising portions of the computer program translated from a first language representation into a second language representation, the untranslated code comprising one or more unresolvable instructions that could not be translated from the first language representation into the second language representation during a first translation attempt, and the placed code being located where the untranslated code would have been placed in the second language representation of the translated code and comprising one or more handling instructions, which, when invoked during execution of the computer program, cause the translation program to attempt a second translation of the untranslated code when control flow directs execution of the computer program to the untranslated code, and to cause execution of re-translated code produced by the second translation. - View Dependent Claims (17, 18)
-
Specification