1. A compiler apparatus which translates a first program that includes a loop into a second program, comprising: a movement judger, included in a computer, operable to judge whether or not an instruction that is positioned outside of the loop of the first program can be moved into the loop, based on a state of live ranges of variables used in the instruction; a movement executor, included in the computer, operable to move the instruction into the loop when said movement judger judges that the instruction can be moved into the loop, thereby generating an intermediate program; and a translator, included in the computer, operable to translate the intermediate program into the second program.