Phase 1: Creating a Program
Phase 1 consists of editing a file with an editor program (normally known simply as an editor). You type a C++ program (typically referred to as source code) using the editor, make any necessary corrections and save the program on a secondary storage device, such as your hard drive. C++ source code filenames often end with the .cpp, .cxx, .cc or .C extensions (note that C is in uppercase) which indicate that a file contains C++ source code. See the documentation for your C++ compiler for more information on file-name extensions.
Two editors widely used on UNIX systems are vi and emacs. C++ software packages for Microsoft Windows such as Microsoft Visual C++ (msdn.microsoft.com/vstudio/express/visualc/default.aspx) and Code Gear C++ Builder (www.codegear.com) ahve editors integrated ito the programming environment. You can also use a simple text editor, such as Notepad in Windows, to write your C++ code. We assume you know how to edit a file.
Phase 2 and 3: Preprocessing and Compiling a C++ Program
In phase 2, you give the command to compile the program. In a C++ system, a preprocessor program executes automatically before the compiler's translation phase begins (so we call preprocessing phase 2 and compiling phase 3). The C++ preprocessor obeys commands called preprocessor directives, which indicate that certain manipulations are to be performed on the program before compilation. These manipulations usually include other text files to be compiled, and perform various text replacements. In phase 3, the compiler translates the C++ program into machine-language code (also referred to as object code).
Phase 4: Linking
Phase 4 is called linking. C++ programs typically contain references to functions and data defined elsewhere, such as in the standard libraries or in the private libraries of groups of programmers working on a particular project. The objectcode produced by the C++ compiler typically contains "holes" due to these missing parts. A linker links the object code with the code forthe missing functions to produce an executable image (with no missing pieces). If the program compiles and links correctly, an executable image is produced.
Phase 5: Loading
Phase 5 is called loading. Before a program can be executed, it must first be placed in memory. This is done by the loader, which takes the executable iamge from disk and transfers it to memory. Additional components from shared libraries that support the program are also loaded.
Phase 6: Execution
Finally, the computer, under the control of its CPU, executes the program one instruction at a time.