Programming Language Lineage Graph
An evidence-cited atlas of what programming languages are written in: their compilers, runtimes, virtual machines and bootstrap chains, mapped separately from which languages influenced which. Every relationship links to the source that supports it.
Open the interactive graph · Read the programming language family tree
Answers that changed over time
- Rust: rustc was written in OCaml until Rust began compiling itself in 2011.
- Go: the compiler was written in C until Go 1.5 (2015) translated it to Go.
- Zig: the compiler was C++ until 2022, when the self-hosted Zig compiler replaced it.
- Python: CPython, the reference implementation, is written in C.
- Java: javac is written in Java, while the HotSpot JVM is written in C++.
Kinds of relationship, kept apart
- Compiler written in and runtime written in: what an implementation is built from.
- Bootstrap chains: what the first compiler was written in before a language could compile itself.
- Transpiled to: languages that compile to another high-level language.
- Rewritten in: implementations moved to a different language.
- Influenced: design ideas borrowed from earlier languages, with no code dependency.