1. Compiler
Compiler takes high-level human readable program and convert into low-level machine readable program. Compiler checks for any error for syntax and some semantic in the code.
2. Interpreter
Interpreter takes high-level human readable program and convert into comprehensible program. It convert high-level program into intermediate code. It contains pre-compiled code, source code, etc.
Difference between Compiler and Interpreter
Aspect | Compiler | Interpreter |
---|---|---|
Steps of Programming | – Create program – Analyze for errors – Convert to machine code – Link files – Run | – Create program – No linking – Execute source statements one by one |
Output Generation | Generates (.exe) output, saves machine code on disk | No output generation |
Code Execution Speed | Compiled code runs faster | Interpreted code runs slower |
Working Model | Uses linking-loading model | Works with interpretation model |
Error Display | Errors shown after compiling | Errors shown in every line |
Code Optimization | Code optimization for speed | Slower optimization |
Source Code Requirement | No need for source code later | Requires source code later |
Execution Timing | Execution after entire program analysis | Execution after each line evaluation |
CPU Utilization | More CPU usage in production | Less CPU usage in development |
Object Code Saving | Object code saved for future | No object code saved |
Examples | C, C++, C#, etc. | Python, Ruby, Perl, etc. |
Note:
- Interpreter is faster for a process, but compiled programs run faster.
- Types of Compilers: Cross-Compiler, Native Compiler, etc.
- Types of Interpreters: Bytecode, Threaded code, etc.
RECOMMENDED: Difference between Cellular and Ad Hoc Wireless Network
Please write comments if you find anything incorrect. A gentle request to share this topic on your social media profile.