Questions about interpreted languages and program interpretation in general. A language implementation is interpreted if programs are executed by another program (the interpreter) as opposed to being transformed (compiled) into code that is directly executed by the machine.
An interpreted language is a programming language in which programs are "indirectly" executed (interpreted) by an interpreter program. This can be contrasted with a compiled language which is converted into machine code and then "directly" executed by the host CPU.
Theoretically, any language may be compiled or interpreted; this designation is applied purely because of common implementation practice and not some essential property of a language. Indeed, for some programming languages, there is little performance difference between an interpretive, or compiled-based approach to their implementation.
For more information, see the Wikipedia entry about interpreted languages.
See also interpreter.