Interpreter
In plain terms
A program that executes code directly, line by line.
Going deeper
Unlike a compiler that translates the whole program ahead of time, an interpreter reads and runs code on the fly. This makes development flexible and immediate but usually slower at runtime.
Under the hood
Slower than compiled code but enables REPLs, dynamic features, and portability; many languages mix both (bytecode + JIT) to balance speed and flexibility.
Examples
CPython, Ruby MRI, JavaScript engines, the bash shell, SQL execution.
Think of it like...
Like a live interpreter translating a speech sentence by sentence as it's spoken, rather than handing over a fully pre-translated script.