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