# munificent/craftinginterpreters

Repository for the book "Crafting Interpreters"

Repository: https://github.com/munificent/craftinginterpreters
Canonical: https://ross.abutalabs.com/products/craftinginterpreters
Homepage: http://www.craftinginterpreters.com/
Language: HTML
License: NOASSERTION
License Family: other
Topics: language, parser, bytecode, java, c, scripting-language, book, markdown, lox, compiler, interpreter
Last push: 2024-08-07T12:07:07+00:00

## Health v2 (maintenance only)
Score: 32/100 (v2, computed 2026-09-03T02:20:16.233290+00:00)
- activity 0, release rhythm 35, longevity 100
- inputs: {"age_days": 3517, "days_push": 756, "days_rel": null, "gap_med": null, "n_releases_24m": 0}
- flags: no_releases, no_license
- formula: round(0.45*activity + 0.35*rhythm + 0.20*longevity); archived -> min(score, 10)

## Adoption (not part of the score)
Stars 11009, forks 1289 (observed 2026-08-28T04:10:45.863901+00:00)

## What it is
The repository for the book 'Crafting Interpreters', containing the full Markdown text, a static site generator, and complete implementations of two interpreters (jlox in Java and clox in C) for the Lox scripting language. It teaches readers how to build a full-featured, dynamically typed language from scratch, covering parsing, bytecode compilation, and garbage collection.

## Use cases
- learn how to write an interpreter for a programming language
- understand how bytecode virtual machines work
- build my own scripting language from scratch
- learn parsing and lexical analysis hands-on
- study garbage collection implementation in C
- find a tutorial on compilers and language design
- implement closures and classes in a language runtime

## When to choose
- you want a hands-on, code-first introduction to interpreters and language implementation
- you prefer learning by writing every line of a real language yourself
- you want a free, complete book covering both tree-walking and bytecode VM approaches

## When to avoid
- you need a production-ready interpreter or compiler toolchain
- you want formal compiler theory rather than practical implementation
- you need a maintained software tool - this is primarily a book, not a library

## Facets
- artifact type: learning-resource
- maturity: stable
- function: interpreter, parser, compiler, documentation, static-site-generator, testing
- domain: programming-languages, compilers, parsers, tutorials, education
- platform: cross-platform, jvm, cpp, c
- tags: book, lox, bytecode, scripting-language, interpreters, tree-walk-interpreter, virtual-machine

## Member repositories
- munificent/craftinginterpreters (main) score 32

## Provenance
- Observed fields: from GitHub, fetched 2026-08-28T04:10:45.863901+00:00.
- Health v2: computed from the inputs above; adoption is never an input.
- Inferred fields (summary, facets, guidance): AI-extracted, prompt v1, taxonomy v1, on 2026-08-29T17:17:13.521028+00:00, confidence not recorded.
  - readme: https://github.com/munificent/craftinginterpreters (fetched 2026-08-28T04:10:45.863901+00:00, sha f756847049aa)
  - homepage: http://www.craftinginterpreters.com/ (fetched 2026-08-29T08:15:41.330740+00:00, sha 9643215cf406)
- Data as of 2026-08-30T08:39:29.467469+00:00.
