There are four common usages of this term: * self-hosting compiler (EditHint: does this have a WikiWord?): program which reproduces its BinaryCode * QuineProgram: programs which reproduce their SourceCode * ComputerVirus: program which reproduces its BinaryCode * RabbitProcess: program which reproduces its process (by forking) ---- (stuff about making metal parts moved to SelfAssembly) ---- If the compiler is self-hosting, then developers frequently use the compiler to compile itself, and repeat the process several times. The idea is that a buggy compiler will produce steadily worse compilers for the first several generations. -- EricKidd at XpForOptimizingCompilers ---- See also SelfReplication, SelfPrintingProgram, SelfAssembly