An intermediate code execution apparatus which executes intermediate code obtained by compiling source code created in a predetermined program language, comprising:
- a plurality of intermediate code execution sections which execute the intermediate code;
- a storage section which stores intermediate code and also stores a correspondence relationship between an instruction included in the intermediate code and appropriateness of each said intermediate code execution sections for efficient execution of said instruction;
- and
- an intermediate code interpretation section which executes the following processing:
- a) identification of the instructions included in the intermediate code stored in said storage section;
- b) determination of an appropriate one from said intermediate code execution sections for efficient execution of the intermediate code based on said identified instructions and said correspondence relationship;
- and
- c) recording of a relationship between the intermediate code and said appropriate intermediate code execution section for the intermediate code execution, wherein said correspondence relationship includes a score table of a processing efficiency degree when each instruction is executed by each of said intermediate code execution sections, and b) further includes the following processing:
- b1) acquisition of a score of the processing efficiency degree when said identified instruction is executed by each of said intermediate code execution sections based on said score table;
- b2) calculation of a sum of the acquired scores in accordance with each intermediate code execution sections;
- and
- b3) determination of an appropriate one from said intermediate code execution sections based on the score summed in accordance with each intermediate code execution sections.