What is an interpreted language?

There are only two reasonable definitions of ``interpreted language'' that I can think of:
  1. A language that can be implemented with an interpreter,
  2. A language that must be implemented with an interpreter.
In the first case, all languages are interpreted. In the second case, no language is interpreted.

Sometimes, students confuse interpreted and interactive, i.e. they think that whenever there is an interactive loop such as the Lisp read-eval-print loop, there must also be an interpreter. That is false. The eval part can very well be implemented with a compiler.

Sometimes, students think that even though it is possible to implement Common Lisp (or Scheme) with a compiler, it is usually done with an interpreter, so that most implementations are slow. This might be the case for Scheme systems written by students, but is never the case for professional systems. Almost every Common Lisp system in existence uses a compiler.