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

FromToConfidenceNotes
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
Explore in Graph →