Patent ID: 7712090

Claim:
A computer-implemented method of generating an executable program comprising: receiving from a scheduler compile commands, in serial order, in a pseudo-compiler to compile source code modules where the pseudo-compiler uses serial scheduling to operate two or more parallel compilers, the pseudo-compiler appears to the scheduler as a single compiler such that the scheduler triggers the pseudo-compiler to compile the source code modules, where the pseudo-compiler distributes the compile commands to the two or more parallel compilers so that each of the two or more parallel compilers has distributed to it at least one of the compile commands, the parallel compilers operating in parallel and independently of each other; serially scheduling the serial compile commands in the parallel compilers to independently compile the source code modules such that each of the parallel compilers independently compiles respective source code modules in series, wherein serially scheduling comprises: the scheduler sending a first compile command to the pseudo-compiler; the pseudo-compiler triggering a first compiler to compile a first source code module based on the first compile command, and sending a first acknowledgment to the scheduler acknowledging that compiling of the first source code module is complete prior to actual completion of compiling of the first source code module; the scheduler sending a second compile command to the pseudo-compiler only after receiving the first acknowledgment; and the pseudo-compiler triggering a second compiler to compile a second source code module based on the second compile command; compiling the source code modules in the parallel compilers to generate respective object code modules; receiving from each parallel compiler an acknowledgment at a synchronizer, each acknowledgement indicating actual completion of the generation of the respective object code modules by respective parallel compilers; and linking the object code modules in response to linker initiation commands received from the synchronizer.