Differentiate between Compiler and Interpreter

1 Compiler translates whole HLL program into machine language at time. Interpreter translates high level language program into machine language, but one instruction at a time.
2 Compiler generates Object program on the disk Interpreter do not generate object program on the disk.
3 Compiler displays list of syntax errors, with line numbers, at the end of the compilation process. (When full HLL program is translated). Interpreter translates each instruction and executes it and goes to next instruction. If any error is found, at any instruction, it stops translation and displays error message immediately.
4 Compiler are not user friendly hence not easy to use. Interpreters are user friendly and hence easy to use.
5 Compiler requires more space in the memory. Interpreter requires less space in the memory.
6 They are used after the program development is complete, to one time compile the program and generate object program on the disk. They are used in the program development stage since they are interactive.
7 Compiled program (Object program) can run any no. of times and on any machine without compiler. You need Interpreter each time when you want to run the source program.
8 Execution of Object program is fast. Execution is slow, because each time it will do translation.