Compiler Written In
Compiler Implementation Relationships
These relationships document what programming language each compiler is written in. For example, GCC (the GNU Compiler Collection) is written in C.
All 96 Relationships
| From | To | Confidence | Notes |
|---|---|---|---|
| Haskell | GHC | 99% | GHC is written in Haskell; start year normalized to Haskell first-release year for dataset chronology. |
| Haskell | Haskell | 98% | GHC is self-hosting, written in Haskell |
| C | Go | 98% | Original Go compiler in C, rewritten in Go in 1.5 (2015) |
| C++ | LLVM | 98% | LLVM infrastructure written in C++ |
| C++ | Clang | 98% | Clang frontend written in C++ |
| C++ | mrustc | 98% | mrustc alternative Rust compiler in C++ |
| OCaml | OCaml | 98% | OCaml compiler is self-hosting |
| Rust | Rust | 98% | rustc is self-hosting since ~2011 |
| Go | Go | 98% | Go compiler rewritten in Go in version 1.5 |
| TypeScript | TypeScript | 98% | tsc is self-hosting, written in TypeScript |
| C# | Roslyn | 98% | Roslyn is self-hosting C# compiler platform |
| Haskell | Elm | 95% | Elm compiler written in Haskell |
| Haskell | PureScript | 95% | PureScript compiler written in Haskell |
| C | GCC | 95% | GCC originally written in C, switched to C++ in 2012 |
| C++ | C++ | 95% | GCC and Clang (C++ compilers) written in C++ |
| C++ | GCC | 95% | GCC switched from C to C++ in 2012 |
| C++ | Swift | 95% | Swift compiler primarily in C++ |
| C++ | Zig | 95% | Zig originally written in C++ before self-hosting |
| OCaml | Rust | 95% | Original Rust compiler (rustboot) written in OCaml |
| Java | Java | 95% | javac compiler is self-hosting |
| Java | Clojure | 95% | Clojure compiler written in Java by design |
| Erlang | Erlang | 95% | Erlang compiler is self-hosting |
| Kotlin | Kotlin | 95% | Kotlin compiler became self-hosting; K2 frontend in 2024 |
| C# | C# | 95% | C# Roslyn compiler written in C# (self-hosting) |
| Crystal | Crystal | 95% | Crystal compiler is self-hosting |
| Nim | Nim | 95% | Nim compiler self-hosting from first release year |
| Zig | Zig | 95% | Zig became self-hosting in 2022, dropped C++ compiler |
| Scala | Scala | 95% | Scala 3 (Dotty) compiler bootstrapped itself |
| LLVM | Swift | 95% | Swift uses LLVM as compiler backend |
| LLVM | Rust | 95% | rustc uses LLVM as backend |
| Common Lisp | Common Lisp | 95% | SBCL is self-hosting Common Lisp implementation |
| Assembly | Lisp | 95% | Original Lisp interpreter written in IBM 704 assembly by Steve Russell |
| C++ | Objective-C | 95% | Clang (written in C++) is the primary Objective-C compiler |
| Haskell | Agda | 95% | Agda proof assistant and compiler written in Haskell |
| Python | mypy | 95% | mypy type checker written in Python |
| TypeScript | Angular | 95% | Angular framework and AOT compiler written in TypeScript |
| Rust | Gleam | 95% | Gleam compiler written in Rust |
| OCaml | Coq | 95% | Coq is implemented in OCaml. |
| Go | esbuild | 95% | esbuild is written in Go. |
| Rust | SWC | 95% | SWC is written in Rust. |
| JavaScript | Babel | 95% | Babel is written in JavaScript. |
| F# | F# | 92% | F# compiler became self-hosting |
| Elixir | Elixir | 92% | Elixir compiler is self-hosting |
| LLVM | Crystal | 92% | Crystal compiler uses LLVM backend |
| LLVM | Zig | 92% | Early Zig used LLVM, now has own backend option |
| LLVM | Mojo | 92% | Mojo uses MLIR/LLVM backend |
| C++ | Solidity | 92% | The reference compiler solc is written in C++. |
| Rust | Roc | 92% | The Roc compiler is written in Rust. |
| OCaml | Haxe | 92% | The Haxe compiler is written in OCaml. |
| Fortran | Prolog | 91% | First Prolog interpreter (1972) written in Fortran by Gerard Battani and Henri Meloni at Aix-Marseille |
| Standard ML | Standard ML | 90% | SML/NJ is self-hosting |
| C++ | Carbon | 90% | Carbon toolchain written in C++ |
| C++ | Mojo | 90% | Mojo toolchain written in C++ |
| Pascal | Pascal | 90% | Pascal P-compiler bootstrapped itself |
| Java | Kotlin | 90% | Early Kotlin compiler written in Java before self-hosting |
| Java | Groovy | 90% | Groovy compiler written in Java (intentional) |
| C# | Visual Basic .NET | 90% | Roslyn handles both C# and VB.NET |
| Swift | Swift | 90% | Swift compiler increasingly written in Swift |
| D | D | 90% | DMD reference compiler bootstrapped to D |
| Racket | Racket | 90% | Racket compiler is self-hosting |
| Ada | Ada | 90% | GNAT (GCC Ada) is self-hosting |
| CoffeeScript | CoffeeScript | 90% | CoffeeScript compiler is self-hosting |
| Ruby | Crystal | 90% | Crystal compiler bootstrapped from Ruby initially |
| Assembly | FLOW-MATIC | 90% | FLOW-MATIC compiler written in assembly for UNIVAC I |
| Assembly | ALGOL | 90% | Early ALGOL 60 compilers written in assembly |
| Assembly | COBOL | 90% | Early COBOL compilers written in assembly; GnuCOBOL later written in C |
| ALGOL | Simula | 90% | Simula 67 compiler implemented in ALGOL |
| C | Icon | 90% | Icon compiler and runtime written in C |
| Pascal | Modula-2 | 90% | Early Modula-2 compilers written in Pascal |
| C | Miranda | 90% | Miranda compiler written in C |
| C | Modula-3 | 90% | Modula-3 compiler (m3cg) written in C |
| Oberon | Oberon-2 | 90% | Oberon-2 compiler derived from Oberon compiler |
| C | Limbo | 90% | Limbo compiler written in C as part of Plan 9 |
| C | Fortran 95 | 90% | GNU Fortran (gfortran) compiler written in C as part of GCC |
| C | Cyclone | 90% | Cyclone compiler written in C at Cornell/AT&T |
| OCaml | ReScript | 90% | The ReScript compiler is based on OCaml. |
| Haskell | Unison | 90% | Unison's implementation is written in Haskell. |
| C# | PowerShell | 90% | PowerShell is implemented in C# on .NET. |
| Rust | Move | 90% | The Move toolchain is written in Rust. |
| Java | GraalVM | 90% | GraalVM's compiler is written in Java. |
| C | Rust | 85% | Early Rust had C components before OCaml bootstrap compiler |
| C | Swift | 85% | Early Swift compiler had significant C components |
| Julia | Julia | 85% | Julia increasingly self-hosting, parser moving from FemtoLisp |
| Fortran | Fortran | 85% | Modern Fortran compilers (gfortran) are self-hosting |
| Assembly | COMTRAN | 85% | COMTRAN compiler written in assembly for IBM 702 |
| Assembly | PL/I | 85% | Early PL/I compilers for IBM System/360 written in assembly |
| Assembly | ALGOL 68 | 85% | Early ALGOL 68 compilers written in assembly |
| Assembly | CLU | 85% | CLU compiler at MIT written in assembly and PDP-10 machine code |
| C | Newsqueak | 85% | Newsqueak compiler written in C at Bell Labs |
| C | Alef | 85% | Alef compiler written in C at Bell Labs |
| C# | Q# | 85% | The Q# compiler is implemented on .NET in C#. |
| C++ | Chapel | 85% | The Chapel compiler is written in C/C++. |
| C++ | Pony | 85% | The Pony compiler is written in C/C++ with an LLVM backend. |
| C++ | Odin | 85% | The Odin compiler is written in C++ with an LLVM backend. |
| Assembly | Forth | 80% | Classic Forth systems were bootstrapped in assembly. |
| Machine Code | Speedcoding | 80% | Speedcoding was implemented in IBM 701 machine code. |