The linker combines a list of object modules into an executable program that can be loaded and run by the operating system. The linker also adds a special object module to perform start-up activities. The linker can search through special files called libraries in order to resolve all its references. A library contains a collection of object modules in a single file. A library is created and maintained by a program called a librarian .
Static type checking The compiler performs type checking during the first pass.
Type checking tests for the proper use of arguments in functions, and prevents many kinds of programming errors. Since type checking occurs during compilation rather than when the program is running, it is called static type checking . If combined with static type checking, dynamic type checking is more powerful than static type checking alone. However, it also adds overhead to program execution. Static type checking notifies the programmer about misuses of types during compilation, and thus maximizes execution speed.