Attempting runtime retranslation of unresolvable code
AssigneeMicrosoft Corporation
InventorsSanjay Bhansali, Shajan Dasan, Brian Harry, Vance Morrison
Life of this patent
Estimating the term…
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.
Claims20
A method of executing computer program code, the method comprising:
- executing program code received in an input stream, the input stream comprising a second language representation;
- while executing the program code, identifying program code in the input stream that has not been translated from a first language representation into the second language representation;
- translating the identified program code from the first language representation into the second language representation;
- and
- executing the translated identified program code.
In a computer readable medium, computer executable instructions comprising:
- 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;
- the placed code comprising handling instructions indicating at least one instruction of the computer program that was not translated from the intermediate language representation into object code in a previous translation attempt;
- and
- the handling instructions further comprising instructions for invoking the computer language translation program to translate the at least one instruction from an intermediate language representation into object code.
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 instructions that could not be translated from the first language representation into the second language representation during a previous translation attempt, and
- the placed code comprising one or more instructions for invoking the translation program to translate the untranslated code when control flow directs execution of the computer program to the untranslated code.
Dependencies are inferred from the claim text.