Patent ID: 8589899

Claim:
An optimization system executed by a processor for optimizing a program described in a dynamic language, the system comprising: a range identifying unit to identify an identified range in the program in which access to a symbol can be commonized; wherein the identified range includes a plurality of instruction including a group of accessing instructions for accessing the symbol (variable) in the program; an instruction extracting unit that fetches the plurality of instructions from the identified range one by one; an instruction judging unit that determines whether each of the fetched instructions is one of the accessing instructions; an instruction generating unit that generates a plurality of optimized instructions; wherein optimization is based on the accessing instructions included in the identified range, and wherein the plurality of optimized instructions can be instructions (1) to access a symbol table, (2) to retrieve a symbol entry address in which a value object address is held of a value object, and (3) to store the value object address in an address storage unit; wherein the symbol table has (i) a key for identifying each symbol and (ii) the value object address of the value to be stored in the symbol, wherein the key and the value object address are stored in association with each other, wherein accessing the symbol table is done by using the key for identifying the symbol to be accessed; wherein, if the instruction judging unit determines that the fetched instruction is one of the accessing instructions, and if the symbol is present when generating the optimized instruction, the instruction generating unit generates the optimized instruction allowing immediate access to the symbol without checking whether the symbol is present or not; wherein the optimized instruction is generated based on the fetched instruction by using the symbol entry address in the address storage unit.