An interpreter is a type of language processor that directly executes the instructions written in a source program, instead of translating the entire program into machine code like a compiler.
How It Works:
- The interpreter reads the source program line-by-line (statement-by-statement).
- It processes inputs from the user and produces outputs immediately during execution.
- Unlike a compiler, it does not produce a separate target program.

Advantages:
- Better error diagnostics: Since it runs one line at a time, it can easily detect and show where an error occurred.
- Platform-independent (in some cases): For example, Java bytecode can be interpreted on any system with a Java Virtual Machine (JVM).
Disadvantages:
- Slower execution than compiled programs because translation and execution happen simultaneously.
Example – Java:
Java uses both compilation and interpretation:
- The source code is compiled into bytecode.
- The bytecode is interpreted by the JVM (Java Virtual Machine).
- Optionally, Just-In-Time (JIT) compilers can be used to improve performance by translating bytecode into machine code at runtime.
