1. A compiler for converting a source program including a branch instruction into an object program composed of lines of object code, comprising: an execution path specifying unit operable to specify one of a plurality of execution paths of a partial series of instructions, including a branch instruction, of the source program; an execution-path code generating unit operable to generate execution-path code that at least includes object code corresponding to instructions residing on the specified execution path except the branch instruction, the code generation involving replacing, with another variable, each variable that needs to be alive at an entry point of the specified execution path and is defined on the specified execution path; a restoration code generating unit operable to generate restoration code for restoring each of the replaced variables that needs to be alive at an exit point of the specified execution path to an original variable; a partial code generating unit operable to generate partial code corresponding to the partial series of instructions; and a branch code generating unit operable to generate branch code based on a branch condition of the branch instruction residing on the specified execution path, wherein the branch code leads from an end of the execution-path code to a beginning of the restoration code if the branch condition is true, and causes a branch from the end of the execution-path code to a beginning of the partial code if the branch condition is false.