We know that a computer can understand only Machine Language But the Program Written by a user is in the Form of English Language So it very necessary to convert the human Language into the Machine Language. So for this purpose we use Compiler which Converts human code into the machine code.
Compiler complies the whole program and it also display all the errors those are occurred in the Program But the disadvantage of Compiler is that it converts whole Program a time It doesn’t provide the facility to check a statement at a time.
When a computer programmer writes a program, the programming language use has some resemblance to human speech--even we nonprogrammers can read some of the words, like if and then and do, and others, like printf or struct, almost look like real words. But a computer can't understand anything about a program written in a programming language, not even the plus signs. In order to run that program, the programmer has to first convert it into computer-ese, known as machine code, using a special program called a compiler. Usually, the compiler produces an intermediate form of the program which is then converted to the final, working form by a "linker," another special program.
As a verb, to compile a program is to convert it into machine code using a compiler. Contrast compiler with interpreter.