Bootstrap and Self-Hosting Chains
Bootstrapping is the process of writing a compiler in the same language it compiles. These relationships show the bootstrap chains — what language was used to write the initial compiler before self-hosting was achieved.
All 14 Relationships
| From | To | Confidence | Notes |
|---|---|---|---|
| Lazy ML | GHC | 95% | Original GHC prototype written in Lazy ML by Kevin Hammond in 1989 before the Haskell rewrite |
| Ruby | Crystal | 92% | Crystal compiler bootstrapped from Ruby |
| Erlang | Elixir | 92% | Elixir bootstrap compiler written in Erlang |
| BCPL | B | 90% | B compiler bootstrapped using BCPL |
| OCaml | F# | 90% | F# initial compiler written in OCaml before self-hosting |
| FemtoLisp | Julia | 90% | Julia parser frontend was FemtoLisp until v1.10 |
| Modula-2 | Oberon | 90% | Oberon compiler bootstrapped from Modula-2 |
| Pascal | Free Pascal | 90% | Free Pascal compiler initially written in Turbo Pascal then self-hosted |
| Pascal | Delphi | 90% | Delphi compiler bootstrapped from Turbo Pascal, now self-hosted |
| Prolog | Mercury | 90% | Mercury compiler initially written in Prolog, then self-hosted |
| Haskell | Idris | 90% | Idris compiler initially written in Haskell, later self-hosted |
| Machine Code | Rust | 88% | Rust bootstrap chain starts at machine code level |
| B | C | 85% | Early C compiler bootstrapped from B |
| Machine Code | Swift | 80% | Swift bootstrap chain via LLVM |