Programming Language Guides
In-depth guides on how programming languages are made, implemented, bootstrapped, and related to each other. 13 guides covering compilers, runtimes, and language history.
Compiler bootstrapping is the process of writing a compiler for a language in that same language. Learn how it works and which languages use it.
A self-hosting compiler is a compiler that can compile its own source code. Learn which languages are self-hosting and why it matters.
Understand the difference between a compiler, interpreter, and runtime, and how these determine what language an implementation is written in.
The programming language family tree: how Fortran, LISP, and C influenced and implemented the languages that followed, across 75+ years of compiler and runtime history.
JavaScript engines like V8, SpiderMonkey, and JavaScriptCore are written in C++. Learn how they parse, compile, and execute JavaScript code.
CPython is the reference Python implementation, written in C. PyPy uses RPython. Learn how Python interpreters work and what language each is written in.
Rust is a self-hosting language. The Rust compiler (rustc) is written in Rust itself. Learn how the Rust bootstrap process works.
GCC and LLVM are the two dominant open-source compiler infrastructures. Both are written in C++. Learn how they differ and which languages use each.
Learn how programming languages are designed and implemented. Languages are built using other languages, compilers and interpreters are programs written in existing languages.
All three major JavaScript engines are written in C++. V8 powers Chrome and Node.js, SpiderMonkey powers Firefox, and JavaScriptCore powers Safari.
TypeScript adds types to JavaScript. The official compiler tsc is self-hosting TypeScript; swc is written in Rust; esbuild is written in Go. All three transpile to JavaScript.
HotSpot (C and C++) is the standard JVM in OpenJDK. GraalVM replaces the C2 JIT with a Java-written compiler and adds polyglot and Native Image support. Both run the same bytecode.
How Python, Rust, Go, JavaScript, Java, Ruby, and Haskell trace their compiler or runtime implementation back to C or C++. 7 chains computed from the Language Lineage dataset.