|This article is very short and not very detailed. Please help to improve it.|
An Interpreter is a program that parses and executes a programming language on the fly without converting it to binary executable code. The program the interpreter executes is usually stored as plain text although other formats are possible.
This is in contrast to a compiler that converts the whole source code from human readable instructions directly to machine language executables. In most cases the line between "interpreted" and "compiled" languages is very clear. Most language implementations are either one or the other. There are a several few exceptions to this rule, most notably Forth, which is effectively both compiled and interpreted. Another exception is Java, where the compilation generates pseudo code that is interpreted by a virtual machine engine. Also many modern scripting languages (Perl, Python, ...) have a just-in-time pre-compiler stage followed by the interpretation stage which executes the generated pseudo code. However, they are generally regarded as interpreter anyway.
The best known interpreted language of the 8-bit era was BASIC. From the late 1970's through most of the 1980's nearly every computer had its own version of BASIC stored in ROM. As mentioned above they are commonly using some condensed (tokenized) format to save space and to accelerate interpretation.