Runtime Implementation Relationships
These relationships document what programming language each runtime or interpreter is written in. For example, CPython (the reference Python interpreter) is written in C.
All 56 Relationships
| From | To | Confidence | Notes |
|---|---|---|---|
| Erlang | Elixir | 99% | Elixir runs on BEAM (Erlang VM) |
| C | Bash | 99% | Bash interpreter written in C |
| C | Lua | 98% | Lua written in ANSI C |
| C | Python | 98% | CPython reference implementation in C |
| C++ | V8 | 98% | V8 JavaScript engine written in C++ |
| C++ | HotSpot JVM | 98% | HotSpot JVM written in C++ |
| Erlang | BEAM VM | 98% | BEAM VM created for Erlang |
| BEAM VM | Elixir | 98% | Elixir runs on BEAM VM |
| C | GHC | 97% | GHC's runtime system (RTS) is written in C and C-- |
| Java | Kotlin | 97% | Kotlin runs on JVM |
| C | Perl | 95% | Perl interpreter written in C |
| C | PHP | 95% | PHP Zend Engine written in C |
| C | Ruby | 95% | MRI/CRuby written in C |
| C | OCaml | 95% | OCaml runtime/GC written in C |
| C | BEAM VM | 95% | BEAM VM written in C |
| C++ | .NET Runtime | 95% | CoreCLR primarily in C++ |
| C++ | Dart | 95% | Dart SDK/VM written in C++ |
| Go | Go | 95% | Go runtime also written in Go since 1.5 |
| Assembly | Go | 95% | Go runtime has assembly components |
| LLVM | Julia | 95% | Julia uses LLVM for JIT compilation |
| Chez Scheme | Racket | 95% | Racket migrated backend to Chez Scheme in 2019 |
| C | Erlang | 95% | Erlang VM (BEAM) written in C |
| C | Smalltalk | 95% | Squeak and Pharo VMs (primary Smalltalk implementations) written in C |
| C | Scheme | 95% | MIT Scheme runtime written in C |
| C | AWK | 95% | AWK runtime (gawk, nawk, mawk) written in C |
| C | Bourne Shell | 95% | Bourne shell written in C by Steve Bourne at Bell Labs |
| C++ | Self | 95% | Self VM written in C++ at Stanford/Sun |
| C | Tcl | 95% | Tcl interpreter written in C by John Ousterhout |
| C | J | 95% | J interpreter written in C by Ken Iverson and Roger Hui |
| C | GNU Guile | 95% | GNU Guile interpreter written in C |
| C | LuaJIT | 95% | LuaJIT runtime written in C and assembly by Mike Pall |
| C++ | SpiderMonkey | 92% | SpiderMonkey rewritten in C++ (originally C) |
| C++ | JavaScriptCore | 92% | JavaScriptCore written in C++ and Assembly |
| C | R | 90% | R runtime core in C |
| C | Haskell | 90% | GHC RTS (runtime system) written in C |
| C | .NET Runtime | 90% | CoreCLR has C components alongside C++ |
| C# | .NET Runtime | 90% | Managed parts of CoreCLR written in C# |
| C | Julia | 90% | Julia runtime partially written in C |
| C++ | Julia | 90% | Julia runtime includes C++ components |
| C | Cython | 90% | Cython compiles to C |
| C | APL | 90% | Dyalog APL runtime written in C |
| Lisp | Planner | 90% | Planner was implemented as a Lisp system at MIT |
| C | ML | 90% | Standard ML of New Jersey (SML/NJ) runtime written in C |
| C | S | 90% | S statistical language runtime written in C and Fortran at Bell Labs |
| C | MATLAB | 90% | MATLAB runtime engine written in C and C++ |
| C | ABC | 90% | ABC interpreter written in C at CWI |
| C | Pharo | 90% | Pharo VM (based on Squeak) written in C |
| Rust | SpiderMonkey | 88% | Parts of SpiderMonkey rewritten in Rust |
| C | JavaScript | 85% | Original SpiderMonkey JS engine written in C by Brendan Eich |
| C | JavaScriptCore | 85% | JavaScriptCore has C components |
| Fortran | R | 85% | R has Fortran components for numerical routines |
| Assembly | OCaml | 85% | OCaml runtime has assembly components |
| Assembly | JavaScriptCore | 85% | JavaScriptCore JIT uses assembly |
| Assembly | .NET Runtime | 85% | CoreCLR JIT generates and uses assembly |
| Fortran | S | 85% | S statistical language uses Fortran for numerical computation |
| C | Dylan | 85% | Open Dylan runtime written in C |