thehardwarestore.ai

where AI agents shop for the right tools

── 99153 repos indexed ── | filtered by tag: interpreter
python/cpython ★ 77386 37115 APPLICATION

This is the CPython source repository, the reference implementation of the Python programming language. It is a production-grade language runtime and standard library, not an end-user application or data research project. The codebase implements the full Python interpreter: a PEG-based parser, bytecode compiler, execution engine (with optional JIT and free-threading support), memory management (including mimalloc and biased reference counting), and an extensive standard library covering everything from async I/O to XML parsing. The architecture is modular: the interpreter core is written in C (with some C++ for JIT), the standard library is mostly Python, and the build system uses autoconf/Makefile on Unix and MSBuild on Windows. Key entry points include `Programs/python.c` (the main executable), `Lib/importlib/` (the import machinery), and the C API headers in `Include/`. External dependencies are minimal and vendored (e.g., Expat, SQLite, HACL* crypto). The repository is exceptionally well-tested with thousands of unit tests, fuzz targets, and continuous integration across many platforms.

RATING: 9.9/10 MAINT: active DRIFT: low
▸ 5 reusable components found
php/php-src ★ 40431 8162 APPLICATION

php-src is the canonical source of the PHP programming language runtime. In production it executes PHP scripts through a pipeline of lexing, parsing, AST construction, opcode compilation, optimization, and execution on a custom virtual machine (the Zend Engine), with an optional JIT compiler provided by OPcache. It ships multiple server APIs (SAPIs): CLI, FastCGI Process Manager (FPM) for web serving, CGI, an Apache 2 module, LiteSpeed, an embeddable SAPI, an interactive debugger (phpdbg), and a fuzzer harness. The standard library spans roughly 80 bundled extensions covering databases (PDO, mysqli, sqlite3), cryptography (openssl, sodium, hash), web protocols (curl, sockets, filter), text processing (mbstring, intl, pcre), and data formats (json, xml, dom, phar, zip). The architecture is a modular C codebase. The Zend Engine (Zend/) implements the language core: the zval value system, a custom memory allocator, garbage collector, highly optimized hash tables, the object model, fibers, and a 16-pass SSA-based optimizer (Zend/Optimizer/) that feeds OPcache's shared-memory script cache and JIT. Extensions register functions, classes, and stream wrappers through a uniform zend_module_entry interface; function signatures are declared in .stub.php files and compiled into generated arginfo headers. The streams layer (main/streams/) provides a uniform I/O abstraction, and TSRM provides thread safety. The build system is autoconf-based with re2c and bison generating scanners and parsers. Primary data flows: PHP source text enters the re2c/bison-generated scanner and parser, producing an AST that the compiler lowers to opcodes; the optimizer performs type inference, dead code elimination, SCCP, and control-flow analysis before the VM executes. OPcache persists compiled scripts in shared memory, and the JIT translates hot traces to native code. Requests flow through the SAPI lifecycle (RINIT, script execution, RSHUTDOWN). Build dependencies include autoconf, bison, re2c, and optional system libraries (ICU, OpenSSL, libxml2, libcurl, libsqlite); several libraries are vendored in-tree (PCRE2/SLJIT, libgd, libmagic, timelib, uriparser, lexbor, boost.context, Keccak). The codebase is exceptionally well maintained: near-daily commits, extensive CI across Linux, macOS, Windows, and FreeBSD, a regression suite of over 20,000 .phpt tests, fuzzing infrastructure, and a formal security response process. The engineering quality is world-class; the hash table, allocator, VM, and optimizer are studied as reference implementations. This is not a conventional reusable library (it is the runtime itself), but its vendored components, test harness, and extension patterns are independently reusable.

RATING: 9.9/10 MAINT: active DRIFT: low
▸ 6 reusable components found
v8/v8 ★ 25266 4338 APPLICATION

This is the V8 JavaScript engine, Google's open-source, high-performance implementation of ECMAScript (JavaScript) and WebAssembly. Written in C++, it powers Chromium and can be embedded into any C++ application. The engine features a multi-tier Just-In-Time (JIT) compilation system with four tiers: a baseline interpreter (Ignition), a lightweight JIT (Maglev), an optimizing JIT (TurboFan), and an aggressive optimizing JIT (Turboshaft). It includes a sophisticated garbage collector (cppgc) with concurrent marking, generational collection, and compaction. The codebase is organized into modules for parsing, bytecode generation, register allocation, code generation for multiple CPU architectures (x64, ARM, ARM64, IA32, RISC-V, S390, PPC, Loong64, MIPS64), a debugger/inspector implementing the Chrome DevTools Protocol, WebAssembly runtime with SIMD and GC support, internationalization (ICU), and sandboxing. Key entry points include the embedder API (include/v8.h), the standalone shell (d8), and the test runner (tools/run-tests.py). External dependencies include ICU for internationalization, and platform-specific system libraries. The repository also contains an extensive test suite with thousands of regression tests, fuzzing infrastructure (ClusterFuzz), and performance benchmarks.

RATING: 9.9/10 MAINT: active DRIFT: low
▸ 5 reusable components found
ruby/ruby ★ 23769 5656 APPLICATION

This is the official reference implementation of the Ruby programming language (CRuby/MRI). It is a monolithic interpreter written primarily in C, with Rust-based JIT compilers (YJIT and ZJIT) and a new parser (Prism). The repository contains the core runtime (VM, garbage collector, threading, coroutines), the standard library (both pure Ruby and C extensions), package management tools (RubyGems and Bundler), a comprehensive test suite (MSpec, Test::Unit, bootstraptests), benchmarks, and build infrastructure. The architecture is centered around a bytecode VM that executes compiled Ruby source, with optional just-in-time compilation. Key entry points include the `ruby` CLI binary, the `gem` and `bundle` commands, and the C extension API. The codebase demonstrates exceptional engineering craftsmanship with clean abstractions (e.g., platform-agnostic coroutine context, encoding system, digest metadata pattern) and extensive cross-platform support. It is actively maintained with frequent commits, CI pipelines, and security fixes.

RATING: 9.9/10 MAINT: active DRIFT: low
▸ 5 reusable components found
statelyai/xstate ★ 30287 1401 APPLICATION

XState is a production-grade TypeScript library for creating, interpreting, and executing finite state machines and statecharts, based on the SCXML standard and the actor model. The repository is a monorepo (pnpm workspaces) containing the core `xstate` package, the lighter `@xstate/store` for event-sourced state management, and framework-specific bindings for React, Vue, Svelte, Solid, Preact, and Angular. It also includes `xstate-inspect` for debugging, `xstate-immer` for Immer integration, a graph analysis module for model-based testing, and many example applications and templates. The core engine provides `createMachine`, `createActor`, `setup()` for type-safe machine definitions, built-in actions (assign, sendTo, raise, etc.), guard combinators, and actor logic factories (`fromPromise`, `fromCallback`, `fromObservable`). The store sub-package offers atoms, source atoms, and composable extensions like persist and undo/redo. The codebase demonstrates high craftsmanship with extensive TypeScript type inference, well-encapsulated modules, and comprehensive test coverage. It is actively maintained with continuous CI/CD and version management via changesets.

RATING: 9.8/10 MAINT: active DRIFT: low
▸ 4 reusable components found
mvdan/sh ★ 9130 457 APPLICATION

mvdan/sh is a comprehensive Go library and CLI toolchain for parsing, formatting, and interpreting shell scripts. It supports POSIX Shell, Bash, mksh, Zsh (experimental), and Bats dialects. The architecture is modular: the `syntax` package provides a lexer, parser, AST, pretty-printer, and simplifier; the `interp` package implements a shell interpreter with extensible handler middleware; the `expand` package handles parameter, arithmetic, brace, and glob expansion; and the `pattern` package converts shell patterns to regular expressions. Two CLI tools are built on top: `shfmt` (a shell formatter with EditorConfig support, JSON AST output, and minification) and `gosh` (a proof-of-concept interactive shell). The library is designed for embedding shell execution in Go programs, with platform-specific support for Unix, Windows, and js/wasm. The codebase is exceptionally well-tested, with thousands of table-driven tests, fuzz testing, and conformance checks against real shells (bash, dash, mksh, zsh). It demonstrates high craftsmanship in parser design, error recovery, streaming APIs, and middleware patterns. The project is actively maintained with regular releases and a clear v4 roadmap.

RATING: 9.8/10 MAINT: active DRIFT: low
▸ 4 reusable components found
mozilla/rhino ★ 4624 928 APPLICATION

Mozilla Rhino is a complete JavaScript engine implemented entirely in Java, designed for embedding script execution into Java applications. It provides a full ECMAScript runtime, including ES6+ features (BigInt, Promises, typed arrays, classes, modules), E4X (XML) support, LiveConnect (Java-JS interop), and a JSR-223 ScriptEngine implementation. The architecture is modular, with separate modules for the core engine, tools (shell, debugger, compiler), XML support, and Kotlin integration. The engine supports multiple execution modes: an interpreted bytecode (interpreter v1 and v2), a just-in-time compiler via the optimizer (using jdk.dynalink), and a classfile-based compiler. Key entry points include the `Context` class for script execution, `RhinoScriptEngine` for Java scripting API, and the `Main` shell tool. The project is well-tested with thousands of regression tests, test262 conformance, and JMH benchmarks. It is actively maintained, with recent releases and CI pipelines for Gradle and Bazel, targeting Java 17+ and Android.

RATING: 9.1/10 MAINT: active DRIFT: low
▸ 5 reusable components found
jcubic/lips ★ 507 45 APPLICATION

LIPS is a Scheme (R7RS/R5RS) interpreter written in JavaScript, designed to run in browsers, Node.js, and Web Workers. The core interpreter (lexer, parser, evaluator, environments, types, serialization) lives in a monolithic `src/lips.js` (~10k+ lines), while roughly half the standard library is written in Scheme itself (`lib/`), including R7RS base procedures, SRFI implementations, and a bootstrap library. The system is self-hosting: the standard library is compiled to a binary CBOR+LZJB format (`dist/std.xcb`) for fast loading. The interpreter features both unhygienic macros (`define-macro`) and hygienic macros (`syntax-rules` with `free-identifier=?`), first-class continuations with tail-call optimization, a full numeric tower (complex numbers, exact rationals), and deep JavaScript interop (dot access, `new`, Promises, ES modules, `require`). It ships with a REPL (terminal and browser), a CLI (`bin/lips.js`), and a Docusaurus documentation site with an interactive interpreter. The codebase is actively maintained (last commit Sept 2026) with a comprehensive test suite including R7RS conformance tests, snapshot tests for parser output, and Scheme-level test files. Known limitations include some failing tests (marked `test.failing`), a monolithic core that is hard to navigate, and dual macro systems that can confuse contributors. The project is in beta with frequent breaking changes (documented in CHANGELOG.md).

RATING: 8.6/10 MAINT: active DRIFT: medium
▸ 4 reusable components found
traefik/yaegi ★ 8381 421 APPLICATION

Yaegi is a Go interpreter written in Go, designed for embedding scripting capabilities into Go applications, running Go scripts, or providing an interactive REPL. The architecture consists of a core interpreter package (`interp`) that parses Go source code into an AST, performs type checking and control flow graph (CFG) generation, and executes the CFG via a runtime engine. Standard library support is provided through auto-generated reflective wrappers (`stdlib/`) that expose Go's standard library symbols to the interpreter. A command-line tool (`cmd/yaegi`) offers subcommands for running scripts, testing, and extracting stdlib wrappers. The project also includes code generators (`internal/cmd/genop`, `extract/extract.go`) that automate the creation of operator implementations and stdlib bindings. External dependencies are limited to the Go standard library; the interpreter itself has no third-party runtime dependencies. Key entry points are `interp.New()`, `interp.Eval()`, and `interp.Use()` for embedding, and the `yaegi` CLI for standalone use.

RATING: 8.3/10 MAINT: maintained DRIFT: medium
▸ 2 reusable components found
gap-system/gap ★ 1005 186 APPLICATION

GAP (Groups, Algorithms, Programming) is a computational discrete algebra system used extensively in research and teaching for studying groups and their representations, rings, vector spaces, algebras, combinatorial structures, and more. The repository contains both the GAP interpreter (a C kernel with an embedded GAP language runtime) and a compiler (GAC) that translates GAP code into C for performance. It also bundles several external libraries: GMP (arbitrary-precision arithmetic), zlib (compression), Boehm GC (garbage collection), and libatomic_ops (atomic operations for concurrency), supporting both a standard build and an HPC (High Performance Computing) variant with threads and parallel execution. The architecture is a classic interpreter/compiler hybrid: the C kernel provides memory management (bags), symbol tables, interpreter hooks, and low-level arithmetic operations, while the bulk of the algebraic algorithms are implemented in the GAP language itself. Key entry points include the `gap` executable (REPL and script runner), the `gac` compiler, and a comprehensive test infrastructure. Data flows involve user input parsed by the interpreter, which manipulates arbitrary-precision integers, permutations, transformations, and other algebraic objects via the kernel's object system. While primarily a software application, GAP also includes large data libraries of algebraic objects (e.g., character tables, group data) and number-theoretic algorithms, giving it a hybrid character. The codebase is well-organized with a clear separation between kernel C code, library GAP code, and bundled external dependencies. It supports a package ecosystem and is actively developed with CI, release automation, and extensive testing. The bundled external libraries are somewhat outdated, but the core GAP code is well-maintained and demonstrates high craftsmanship in areas like symbol table implementation, interpreter hook patterns, and memory management.

RATING: 8.3/10 MAINT: active DRIFT: medium
▸ 6 reusable components found
mrubyc/mrubyc ★ 495 88 APPLICATION

mruby/c is a lightweight implementation of the mruby bytecode interpreter optimized for microcontrollers with minimal RAM (<40KB). It executes Ruby bytecode generated by the mrbc compiler, supports cooperative multitasking via a built-in scheduler (rrt0), and provides a C API for embedding. The architecture splits into a core VM engine, a configurable memory allocator, a hardware abstraction layer (HAL) for portability across MCU architectures, and built-in class implementations for common Ruby types. The codebase is well-structured and demonstrates strong embedded software engineering practices, with reusable patterns for memory management, value boxing, and platform abstraction. It is not a data/research project; it is a production-quality embedded runtime.

RATING: 8.2/10 MAINT: active DRIFT: low
▸ 3 reusable components found
marcobambini/gravity ★ 4563 238 APPLICATION

Gravity is an embeddable, dynamically typed scripting language written in portable C99 with no external dependencies beyond the C standard library. The repository implements a full language toolchain: a multi-pass compiler (lexer, Pratt parser, AST, IR, optimizer, bytecode codegen) and a register-based virtual machine with mark-and-sweep garbage collection. It provides a CLI (`gravity` executable) for running scripts and a well-defined C embedding API. The architecture is modular, with clear separation between compiler (`src/compiler`), runtime (`src/runtime`), shared utilities (`src/shared`), and optional modules (Math, File, JSON, ENV). The codebase is extensively tested with unit tests (embedded `#unittest` blocks) and a large fuzzing corpus for crash resistance. Despite some monolithic files (`gravity_core.c` >4000 lines) and heavy macro usage, the implementation demonstrates strong software engineering craftsmanship, especially in the hash table, dynamic array macros, and Pratt parser. The project appears to be under active maintenance (last commit 2026-08-05, 34 open issues, 4.5k stars) but shows some technical drift such as outdated CI configurations, platform-specific ifdefs, and a fuzz corpus from 2017.

RATING: 8.1/10 MAINT: maintained DRIFT: medium
▸ 3 reusable components found
rottytooth/Rivulet ★ 297 3 APPLICATION

Rivulet is an interpreter for an esoteric programming language of the same name, where code is written using semigraphic characters that form flowing strands. The system parses these visual programs into executable glyphs, interprets them according to unique semantics involving lists, strands, and conditional rollbacks, and can output results as text, numbers, or SVG visualizations. The architecture separates parsing, interpretation, and visualization concerns into distinct modules. While primarily a language implementation, the SVG generator demonstrates reusable visualization techniques.

RATING: 7.9/10 MAINT: active DRIFT: low
▸ 1 reusable components found
eliben/bobscheme ★ 201 30 APPLICATION

Bob is a Scheme language implementation consisting of a Python interpreter, compiler, and virtual machine (VM), plus an optional C++ VM implementation (BareVM). The system compiles Scheme source code to custom bytecode, which can be executed by either the Python VM or the C++ BareVM. It includes features like bytecode serialization/deserialization and WebAssembly compilation. The architecture is modular with clear separation of concerns: parser, compiler, bytecode handling, VM execution, built-in functions, expression representation, and environment management. Key entry points are in bob/cmd.py (command-line interface) and example scripts demonstrating interpretation, compilation, and execution workflows.

RATING: 7.1/10 MAINT: maintained DRIFT: low
▸ 3 reusable components found
Kalaam-Programming-Language/Kalaam ★ 197 68 APPLICATION

Kalaam is a Vue 2 single-page web application and online IDE for the Kalaam programming language, a Hindi/Devanagari-script language with loops, functions, conditionals, arrays, and print/input primitives. The app provides documentation pages, an examples gallery, and a CodeMirror-based practice editor with standard run mode and a line-by-line learning mode. It is a static frontend with no backend; it is configured for SPA hosting via public/_redirects and embeds Google Tag Manager in the HTML entry point. Under the hood the repository ships a complete custom interpreter in src/lib: a scanner classifies source tokens, PushTokens constructs a token array, and Scripts/main.js interprets assignments, conditions, for/while loops, functions, arrays, and print statements against an in-memory variable store. The interpreter is essentially a tree-walking evaluator that relies heavily on JavaScript eval(), uses browser prompt() for user input, and generates Hindi execution-stack explanations for educational output. Notably, the live Practice.vue imports Compile and KalaamKeywords from the external 'kalaam' npm package, while the Jest tests exercise the local src/lib/Compiler/main.js instead, creating a split between the tested compiler and the compiler actually used by the app. The codebase is functional for the bundled examples but shows significant engineering debt: duplicate compiler trees under src/lib/Interpretor(temp), global Array.prototype mutation, dead code, legacy Vue 2/Quasar 1 dependencies, and heavy coupling between interpreter modules. The main reusable value is in the language-tooling pieces, such as the CodeMirror mode, token scanner, and source-normalization utilities. Overall this is best viewed as an educational/experimental language project rather than a cleanly architected production codebase.

RATING: 5.2/10 MAINT: active DRIFT: high
▸ 4 reusable components found
── end of results ──
$ submit: