摘要:
The same executable instruction stream as an executable instruction stream generated by a dynamic compiler is reproduced to facilitate debugging of the dynamic compiler. Provides compiler program for computer functioning as: an execution status obtaining section for obtaining an execution status of the program; a dynamic compilation section for compiling one of the partial programs to be executed during execution of the program; an execution status recording section for recording the execution status in a memory area allocated on a memory of the computer; a file reading section for reading a file containing contents of the memory area allocated on the memory; and a replay compilation section for compiling the one partial program on the basis of the execution status obtained from the file to generate the same executable instruction stream as the executable instruction stream generated by the dynamic compilation section during the execution of the program.
摘要:
A hybrid locking method for preventing a reduction in the processing speed of a frequently executed path which includes locking, accessing and unlocking an object is provided. According to the present invention, at least one contention bit is introduced. The contention bit, which is prepared separately from a lock field, is set when a contention occurs in a light-weight lock, and is cleared when a light-weight lock is shifted to a heavy-weight lock (“inflate” function). Specifically, if a lock of an object is managed by storing a bit representing a type of said lock, and an identifier of a thread having acquired a lock in accordance with a first type of lock or an identifier of a second type of lock into a storage area corresponding to the object, in a state where a plurality of threads exist, following steps are executed: if a first thread attempts to acquire a lock of an object that has been acquired by a second thread, determining whether the bit representing the type of the lock of the object represents the first type of lock; and if the bit represents the first type of lock, setting a contention bit.
摘要:
Message sending can be performed quickly making efficient use of memory space. A class object C is obtained (110) from a specified receiver object. The class object C contains an instance variable pointing to a dispatch table for the class to obtain (120) a dispatch table D. From the code which is an argument of a vmicall instruction, a method M of the address stored in the entry of the code in the dispatch table is retrieved (130). The card which is the other argument of the vmicall instruction is compared (140) with the card number stored in the method M retrieved in step 130. If the card and the card number are not identical, the selector mismatch handler is invoked to locate the correct method to be invoked (150). Then, the method M is invoked (160). In the selector mismatch handler, it is determined whether the dispatch table D for the class C is the default one, and if it is the default dispatch table, the dispatch table for the class C is allocated. Then, the method corresponding to the class C and the card which is the argument of the selector mismatch handler is located, a new code is assigned to the selector of that method, and the address of the method M is stored in the entry of the newcode in the previously prepared dispatch table D. Finally, the method M is returned.
摘要:
A method and program for compiling a source program composed by using one or more program modules. Each program module consists of a first part which defines specifications and a second part which performs functions. The compilation method comprises the steps of:(1) detecting an encounter with a stage using a program module while a source program is analyzed by a compiler object;(2) interrupting the compiler object in operation in response to said detection;(3) searching automatically for said first part of said program module in response to said detection;(4) compiling said first part of said program module thus searched out automatically by a new compiler object; and(5) resuming said compilation by said interrupted compiler object after compilation of said first part of said program module.