Main Page

Welcome to the bootstrapping wiki!
This wiki is about bootstrapping, i.e., building up compilers and interpreters and tools from nothing.

To use an analogy from the world of food production:

"'Recipe for yogurt: Add yogurt to milk.' - Anon."

In simple technical terms:

Bootstrapping is about building a compiler using tools smaller than itself, as opposed to building a compiler using an already built version of itself. The problem with the second is: Where did that prebuilt binary come from?

The short sci-fi story Coding Machines (Lawrence Kesteloot, January 2009) has bootstrapping as a theme.

Also see the homepage of the Bootstrappable project, which has pointers to a mailing list and IRC channel.

Topics
Current topics being considered include:


 * mes by janneke, repo
 * live-bootstrap by fossy and stikonas, repo
 * stage0 by Jeremiah Orians, repo
 * Boot2Now by Rick Masters, repo
 * Coquillage by bms_
 * Aesop by unmatched-paren
 * Descent principle
 * The Semantics Assignment Problem
 * Self-Extension
 * Self-Hosting
 * Build Systems
 * Build Inputs
 * C compilers
 * Below C Level
 * Boostrapping Specific Languages
 * Investigate
 * Projects List
 * Documents
 * Forth

Other ideas that have been considered are listed on the dedicated Past Research page. There is also a list of discarded options and why.

Groups
The Groups page has links related to various areas of interest including:


 * Karger-Thompson Attack
 * Ubiquitous Implementations
 * Small C Compilers
 * Grammars, Parsing, and Term Rewriting
 * Virtual Machines, Instruction Sets
 * CPU's for Bootstrapping
 * Minimal Operating Systems
 * Biology / Other?

Helpful Links

 * AIM-039.pdf The first self hosted lisp
 * lambda-the-ultimate thread asking for info on bootstrapping
 * awesome-compilers github list with a lot of information (copy the relevant parts to this wiki)
 * Tombstone diagram
 * bootstrappable a community hub for bootstrapping, with mailing list.
 * bootstrappable mailing list
 * yabfc - Generating-executable-files-from-scratch
 * ELF visualization
 * Cfront - converts C++ to C; developed by Bjarne Stroustrup.
 * How do I install all of the GNU C Library project libraries that I just built
 * Formal Compiler Verification with ACL2 - proving a compiler correct with ACL2 and discussion about correctness and self compiling.