PURPOSE: To generate a compact object including a high speed operation of a variable by assigning the variables in the order of higher emerging frequencies in consideration of the number of routines which are calling the subroutines respectively.
CONSTITUTION: A source program is inputted to an input part 103 from an input 101 and analyzed by a syntax analyzing part 104. Thus an object program is generated and outputted to an output file 106 through an object output part 105. The part 104 includes a correlation information generating part 107 to generate the bidirectional correlation information on each subroutine call included in the input source program. Furthermore a variable frequency information generating part 108 is added to the part 104 to detect the emerging frequency of the variables used in the input source program and to refer to the information on these variables in the order of higher emerging frequencies together with a variable allocation information generating part 109 to generate the allocation information on the variables used in the input source program, and a variable frequency information setting part 110.