You make a piece of code and save the file (Source code), then
Preprocessing :- As the name suggests, it’s not part of the compilation. They instruct the compiler to do required pre-processing before the actual compilation. You can call this phase Text Substitution or interpret special preprocessor directives denoted by #.
Compilation :- Compilation is a process in which a program written in one language get translated into another targeted language. If there are some errors, the compiler will detect them and report it.
Assemble :- Assemble code gets translated into machine code. You can call assembler a special type of compiler.
Linking:- If these piece of code needs some other source file to be linked, linker link them to make it an executable file.
There are many processes that happens after it. Yes, you guessed it right here comes the role of the loader:
Loader:- It loads the executable code into memory; program and data stack are created, register gets initialized.