The term self-hosting was coined to refer to the use of a computer program as part of the toolchain or operating system that produces new versions of that same program—for example, a compiler that can compile its own source code. Self-hosting software's commonplace on personal computers and larger systems. Other programs that're typically self-hosting include kernels, assemblers, and shells. The same concept also applies to energy systems. For example, the first steam engines were manufact… (More on Self-hosting)