The ones who are crazy enough to think they can change the world are the ones who do.- Steve Jobs
Complier is nothing more than translating one thing to another to do some useful work.
In C, Compiler is a kind of translator that translate source code (.c) into machine code (.obj). This machine code is used by your computer's microprocessor to do the work as per the command written in source code by the programmer.
During translation process the Compiler reads the source code (.c) and checks the syntax errors. If any error, the Compiler generates an error message, which is usually displayed on a screen. In case of any errors a object code will not be created by the Compiler. Until all the errors are rectified.
The Compiler usually resides on a disk and not in Random Access Memory (RAM).
Once the program has been compiled the resulting machine code is saved in an executable file, which can be run on its own at any time. Once the executable file (.obj) is generated there is no need of actual source code file. Execution file (.obj) generation will not affect a source code file (.c).
The Compiler replaces all statements with a series of machine language instruction. A single statement is a line terminated by semicolon. The following diagram clearly demonstrate how compiler translate source code to a machine code.
We may make mistakes(spelling, program bug, typing mistake and etc.), So we have this container to collect mistakes. We highly respect your findings.