1. Preprocessing: The preprocessor obeys commands that begin with #, also known as directives Commands for the preprocessor are called directives. Directives begin with a pound sign, and they do not end with a semicolon. Example: ```c // #include ``` 2. Compiling. A compiler translates then translates the program into machine instructions. 3. Linking: The generated objects are combined to create a complete executable. The preprocessor is typically integrated with the compiler.