Skip to content

BootstrappingCaseStudies

andychu edited this page Dec 26, 2020 · 21 revisions

Bootstrapped Compilers (written in itself)

  • Rust: first compiler written in OCaml; then bootstrapped in Rust
  • Go: first compiler written in C; then bootstrapped in Go
    • the Go C compilers in C weren't written written from scratch; they were derived from Ken Thompson's C compilers for Plan 9
    • Used c2go and grind tool to convert C to Go
  • D: C++; then bootstrapped in D (only recently)
  • CoffeeScript: Ruby; then bootstrapped CoffeeScript
  • Perl 6: Uses the Perl 6 subset NQP (Not Quite Perl)

Bootstrapped But Not Sure About the Original

  • TypeScript: currently written in TypeScript; not sure what it started with
  • Haskell: currently written in Haskell
  • OCaml: currently written in OCaml

Not Bootstrapped

  • Elm: Written in Haskell
  • Haxe: Written in OCaml

Self Hosted Subsets

  • C4: C in Four Functions compiles itself
  • tinypy's bytecode compiler: The compiler is written in the subset of Python that tinypy accepts, so it was bootstrapped with CPython, but now it runs itself.

Contributions Welcome

  • Feel free to add any other case studies, e.g. Nim, Crystal, etc.
    • What about C? Was the first compiler in B, BCPL, etc.?
  • Or add links to justify the existing entries (mostly done off the top of my head, after looking at repos for a few years)
Clone this wiki locally