The transition from writing code to executing code is significantly longer with a compiler. Depending on the acumen of the compiler writer, programs generated by a compiler tend to require much less space to run, and they run much more quickly. Although size and speed are probably the most often cited reasons for using a compiler, in many situations they aren't the most important reasons. These pieces are eventually combined into a final executable program by a tool called the linker . This process is called separate compilation .
Separate compilation has many benefits.
A program that, taken all at once, would exceed the limits of the compiler or the compiling environment can be compiled in pieces. Programs can be built and tested a piece at a time. Once a piece is working, it can be saved and treated as a building block. Collections of tested and working pieces can be combined into librar ies for use by other programmers. As each piece is created, the complexity of the other pieces is hidden.