Assembling the source code into an object file
Linking the object file with other modules or libraries into an executable program
Loading the program into memory
Running the program