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