Compiler Vs Interpreter
During programming, we generally write programs in High-level language, which is referred to as source code. This source code contains words & sentences from English language or maybe some other language. But a computer does not understand English words; it only understands a command written in binary 1’s & 0’s, also known as machine code. In order to understand these high-level language programs, we need to convert the source code into machine code, that’s where a compiler & interpreter comes in.
A compiler or interpreter converts a complex language code into simple machine code that a computer can execute.
A compiler is a program that converts a high-level language program (source code) into machine code. It takes the source code as a whole and compiles it.
During compilation, it reveals any bugs or errors; you have to remove these errors otherwise the compiler won’t convert it into machine code. The machine code is stored in an executable file (.exe) which could be run later.
Just like the compiler, the interpreter also converts the source code into machine code, but rather than processing the whole program, it takes one statement (line) at a time. It processes a single statement and reveal any errors and converts it into machine code which is executed at that time.
|Process the whole program (source code) as a whole||Process one single statement at a time|
|Reveals any bugs or error after processing the whole program.||Reveals bugs & errors after processing each single line|
|Stores the machine code after conversion, so it needs memory||Does not need to store machine code as it runs simultaneously while converting.|
|Comparatively faster as It processes the whole program in one go||Comparatively slower as it converts and executes each line one by one|
|The output (machine code) of the compiler runs independently & does not need the compiler during execution.||There is no generation of the machine code as each line is executed during conversion, which runs on the interpreter at the same time.|
|C, C++, C#, Scala, Java, typescript are the programming languages that use Compiler.||PHP, Perl, Python, Ruby are some of the programming languages that use Interpreter.|