Interpreter and Compiler
- An interpreter is a program which translates statements of a program into machine code.
- It translates only one statement of the program at a time.
- It reads only one statement of program, translates it and executes it.
- Then it reads the next statement of the program again translates it and executes it. In this way it proceeds further till all the statements are translated and executed.
- An interpreter reads only one line of a source program at a time and converts it to object codes.
- After the C pre-processor has included all the header files and expanded all macros, the compiler can compile the program.
- It does this by turning the C source code into an object code file, which is a file ending in .o which contains the binary version of the source code.
- Object code is not directly executable, though. In order to make an executable, you also have to add code for all of the library functions that were #included into the file (this is not the same as including the declarations, which is what #include does).
- It is a program which translates a high level language program into a machine language program.
- A compiler is more intelligent than an assembler.
- It checks all kinds of limits, ranges, errors etc. But its program run time is more and occupies a larger part of the memory.
- It has slow speed. Because a compiler goes through the entire program and then translates the entire program into machine codes.