Patent ID: 7958499

Claim:
A program execution control device comprising a processor and a storage unit, wherein said program execution control device causes said processor to execute a program stored in said storage unit, wherein the program is composed of one or more sets of bytecodes including a bytecode for invoking a bytecode set, wherein said program execution control device further comprises: a judging unit operable, for each execution of an invocation bytecode during execution of the program, to judge whether a bytecode set targeted for invocation is already compiled to native code specific to said processor; a first unit operable, when the target bytecode set is judged to be uncompiled, to instruct said processor so that the target bytecode set is sequentially interpreted and executed, and to issue a request to compile the target bytecode set to native code; a second unit operable, when the target bytecode set is judged to be compiled, to instruct said processor to execute native code resulting from the compilation; and a third unit operable to instruct said processor to compile a bytecode set indicated by a compilation request issued by said first unit, in parallel with the bytecode interpretation and execution by said first unit and (ii) the native code execution by said second unit, wherein said program execution control device operates under control of a multitask operating system, wherein the compilation by said third unit is executed as a separate task from the bytecode execution by said first unit and the native code execution by said second unit, wherein the tasks of said first and second units are assigned a higher priority level than a priority level assigned to the task of said third unit, and wherein said program execution control device further comprises: a priority information acquiring unit operable to acquire information showing a priority level of each bytecode set; a comparing unit operable to compare priority levels of (i) the bytecode set indicated by the compilation request and (ii) the instruction execution task; and a priority altering unit operable to temporarily raise a priority level of the compilation task, when the comparison shows that the priority level of the bytecode set indicated by the compilation request is higher than the priority level of the instruction execution task.