All source code is held in ASCII text files. The process by which these files are transformed into an executable program consisting of machine code instructions is called building. A program may involve many source files written in many different languages. Some of the code may already be pre-compiled into libraries, against which the program must be linked. Handling the whole process may be a nontrivial task, and is therefore an important part of the programming knowledge. To a program we associate a project, which loosely speaking is a workspace containing everything that is needed to build the program.
The stages for building a project are as follows.