The term also applies to the use of a compiler to compile
itself. The usual process is to write an interpreter for a
language, L, in some other existing language. The compiler is
then written in L and the interpreter is used to run it. This
produces an executable for compiling programs in L from the
source of the compiler in L. This technique is often used to
verify the correctness of a compiler. It was first used in
the LISP community.