Programming Language Family Tree
The programming language family tree maps how languages descend from and influence each other. Language Lineage extends this with implementation data — what compilers, runtimes, and bootstrap chains each language uses.
The Language Lineage graph contains 98 programming languages grouped into families by influence, implementation, and conceptual ancestry. It goes beyond influence trees to include compiler, runtime, and bootstrap relationships.
The C family
Languages influenced by C's syntax and systems-programming philosophy.
The Lisp family
Languages derived from John McCarthy's Lisp, emphasizing homoiconicity and macros.
The ML family
Statically typed functional languages with algebraic data types and type inference.
The JVM family
Languages that compile to JVM bytecode and run on the Java Virtual Machine.
The BEAM family
Languages targeting the BEAM (Erlang VM), designed for concurrency and fault tolerance.
More than influence — implementation lineage
Traditional family trees show only conceptual influence. Language Lineage also tracks:
- compiler_written_in — what language each compiler is implemented in
- runtime_written_in — what language each runtime or VM is implemented in
- bootstrap_written_in — how self-hosting compilers bootstrap themselves
- transpiled_to — which languages compile to other languages
Frequently Asked Questions
What is a programming language family tree?
A programming language family tree shows which languages influenced or descended from other languages. Languages in the same "family" share syntactic, semantic, or conceptual heritage.
What is the C family of programming languages?
The C family includes languages that adopted C's syntax (curly braces, semicolons) or systems-programming philosophy: C++, Objective-C, Java, C#, Go, Rust, JavaScript, and many others.
What is the Lisp family of languages?
The Lisp family includes languages derived from John McCarthy's original Lisp (1958): Scheme, Common Lisp, Clojure, Racket, and Emacs Lisp. They share s-expression syntax and support for macros.
How does Language Lineage differ from a traditional family tree?
Traditional family trees show influence. Language Lineage also maps implementation relationships: what compilers and runtimes each language uses, bootstrap chains, and transpilation targets — with confidence scores and evidence sources.