For example, a bootstrap can be a short program, usually held in nonvolatile memory, whose function is to load another longer program. When a computing system is first powered-on, the contents of its memory are in general undefined except for those parts that are fabricated from read-only memory or for the contents of nonvolatile memory. The bootstrap routine is stored in ROM and is capable of reading from backing store the complete operating system, which is loaded into the empty memory. The computer is then said to be booted or booted up.
A bootstrap is also a method by which a compiler is transferred from one machine to another, and which depends on the compiler being written in the language it compiles. To transfer from machine A to machine B, given a compiler that runs on machine A, it is first necessary to make the compiler generate B's machine code. The source code of the compiler is then compiled by this modified compiler, so generating a version of the compiler for machine B. In practice it is usually necessary to recode some machine-dependent portions of the compiler by hand to complete the transfer.
The term originates from a story told by Baron Munchausen, who boasted that, finding himself trapped and sinking in a swamp, he lifted himself by the bootstraps and carried himself to safety on firm ground.