BootstrappingCaseStudies - oilshell/oil GitHub Wiki

Bootstrapped Compilers (written in the same language it compiles)

  • 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
  • Nim: Free Pascal; then bootstrapped Nim

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
  • Swift: I think it's mostly written in C++ (?)

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.

Other

  • Raku (formerly Perl 6): Uses the subset NQP (Not Quite Perl)

Links

Contributions Welcome

  • Feel free to add any other case studies, e.g. 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)