Self-hosting (compilers)

Other programs that are typically self-hosting include kernels, assemblers, command-line interpreters and revision control software.

Once written, software can be deployed to the target system using means such as an EPROM, floppy diskette, flash memory (such as a USB thumb drive), or JTAG device.

This is similar to the method used to write software for gaming consoles or for handheld devices like cellular phones or tablets, which do not host their own development tools.

Once the system is mature enough to compile its own code, the cross-development dependency ends.

The first self-hosting compiler (excluding assemblers) was written for Lisp by Hart and Levin at MIT in 1962.

Ken Thompson started development on Unix in 1968 by writing and compiling programs on the GE-635 and carrying them over to the PDP-7 for testing.