A term for the issue of, or for a specific technique for, bringing a system in a desired state by means of a (simple, rough, ad-hoc) subsystem which can perform the task with no external aid, and which is usually discarded as the global desired state has been reached.

The most typical example of bootstrapping is about loading in memory the program loader of a conventional operating system. As the program loader cannot load itself (if it is not in memory it cannot run, if it is in memory it has no need to load itself as it already is arrived at its destination) a much simpler special-purpose loader hardcoded in memory is used. This loader brings, perhaps in more than one stage, the program loader in memory. Once loaded and executed, the program loader can load in memory any part of the operating system not already loaded by the bootstrap loader, which is no longer used.

Another example comes from compilers. Writing a compiler for a Turing-complete programming language L in the same language L has an advantage. If a new version x + 1 of the compiler becomes available, it can be compiled with its previous version x a first time, and then the result can be used to compile it again. The resulting version x + 1 compiler for L has the very desirable property that its features does not depend on those of the version x compiler used to bootstrap its compilation. This two-step procedure is also used to build the version 0 compiler by means of a compiler for L written in some other language, say L, for which we have a third party compiler. As before, the features of the version 0 compiler do not depend neither on those of the third party L compiler, nor on those of the bootstrap compiler for L, given that both are semantically correct.

A third example is about learning a new (natural) language, a task which is usually performed first by using your mothertongue, until you know enough of the language to learn directly in it. The mothertongue must therefore be used as a bootstrap language, an issue which is closely related to that of establishing a common ontological committment (see the voice ontology).

The expression seemingly derives from "pulling yourself up by your own bootstraps", an expression meaning to leverage yourself to success from a small begin, at least according to

This page is linked from: Java   Kurt Gödel   Non-Well-Founded   Ontology   Open Firmware