That is a very old fashioned and not so accurate definition of the two. A compiler translates one language to another language. Usually the target is a lower level language than the source language. Consider a sequence of machine code instructions to be a language too for the purpose. An interpreter evaluates or executes statements expressed in a language; interpreters are ...