83 repositorios
Alternative runtimes and compilers for the Python language.
Explore 83 awesome GitHub repositories matching part of an awesome list · Language Implementations. Refine with filters or upvote what's useful.
CPython is the primary, community-maintained reference implementation of the Python programming language. It functions as a high-level, interpreted execution environment that compiles source code into platform-independent bytecode for processing by a stack-based virtual machine. The runtime manages memory through a combination of reference counting and generational cyclic garbage collection, while dynamic type dispatching determines object behavior at runtime based on metadata stored within object headers. The project is distinguished by its C-based architecture, which provides a stable forei
The reference implementation of the Python programming language.
V is a statically typed, compiled programming language designed for high-performance systems development. It prioritizes memory safety and execution speed by enforcing strict type checking and immutable defaults, while generating native machine code for multiple hardware architectures. The language is built around an integrated toolchain that includes a compiler, package manager, formatter, and testing utilities within a single executable, facilitating rapid development cycles. What distinguishes V is its focus on developer productivity and interoperability. It provides a direct interface for
Statically typed language with WebAssembly support.
This project is a command-line processor designed for the parsing, filtering, and transformation of structured data streams. It functions as a declarative programming environment that treats data as immutable streams, allowing users to perform complex structural modifications through the composition of small, reusable functions. By utilizing a recursive tree traversal engine, the system enables the navigation, inspection, and modification of deeply nested hierarchical data structures. The engine distinguishes itself through a stream-oriented architecture that processes input records one by on
The original command-line JSON processor.
MicroPython is a lean implementation of Python 3 optimized to run on microcontrollers and other resource-constrained systems. It serves as a cross-platform embedded runtime and hardware abstraction layer, providing a firmware framework that maps high-level software commands to specific microcontroller registers across diverse processor architectures. The project functions as an embedded language interpreter that enables rapid prototyping on hardware through an interactive read-eval-print loop. It supports a wide range of target environments, including ARM, ESP32, STM32, RISC-V, and WebAssembl
Lean and efficient Python implementation for microcontrollers.
This project provides a full Python interpreter compiled to WebAssembly, enabling the execution of Python code and scientific libraries directly within web browsers and server-side environments. By bridging the gap between language runtimes, it allows developers to run computational tasks, manage packages, and perform data analysis in client-side environments without requiring a backend server. The platform distinguishes itself through a comprehensive foreign function interface that enables bidirectional data exchange, object proxying, and function calling between Python and JavaScript. It in
Runs Python in the browser via WebAssembly.
Cython is a compiler that translates Python code into C or C++ to create high-performance extension modules. It functions as a static typing optimizer and a C extension generator, allowing developers to declare C types within Python code to reduce interpreter overhead and increase execution speed. The project enables the wrapping of external C libraries to provide high-level interfaces to low-level system capabilities. It also serves as a native binary packager, capable of freezing scripts and their dependencies into standalone executable binaries for distribution. The system covers a broad
Compiles Python code into C for performance optimization.
This project is a Lisp interpreter implementation guide and framework designed to teach the core principles of programming language design. It provides a structured, step-by-step technical framework for building a functional Lisp language from scratch, featuring a specialized interpreter engine and an S-expression parser that converts syntax into abstract syntax trees. The project emphasizes a code-as-data metaprogramming framework, enabling the implementation of macros, quoting, and quasiquoting to transform expressions during evaluation. It is designed with host language agnosticism, allowi
A multi-language implementation of a Clojure-like Lisp.
Lua is an embeddable scripting language written in ISO C, designed to be integrated into host applications for runtime customization. It provides a C-based scripting engine and a prototype-based object model that utilizes associative arrays and metatables to implement inheritance and complex data structures. The language features a cooperative multitasking system that manages concurrent execution threads via coroutines and an incremental garbage collector for automatic memory management. It includes a safe code sandbox to isolate global state and run untrusted scripts within a protected envir
Official ANSI C interpreter for the language.
wasm-bindgen es un generador de bindings y capa de interoperabilidad diseñada para mapear tipos de datos y funciones a través del límite entre WebAssembly y JavaScript. Funciona como una interfaz de función extranjera que sintetiza el boilerplate necesario para permitir la comunicación bidireccional entre Rust y el runtime del navegador. El proyecto genera código de pegamento y envoltorios que automatizan la conversión de tipos complejos, permitiendo que las funciones de Rust se exporten como módulos de JavaScript y que las APIs del navegador se importen a Rust. Utiliza macros procedimentales para definir estas interfaces y sintetiza bindings basados en definiciones de tipos de Rust. El sistema gestiona la memoria a través del paso de punteros de memoria lineal y maneja el intercambio de recursos utilizando manejadores de memoria gestionados por JavaScript. Se basa en una convención de llamada compatible con la ABI de C para pasar enteros primitivos y flotantes entre el módulo y el host.
Library for Rust and JavaScript interoperability.
Wasm3 es un intérprete de WebAssembly diseñado para la integración en tiempo de ejecución embebido. Permite la ejecución de lógica binaria portátil en microcontroladores y hardware con recursos limitados, proporcionando soporte para módulos que utilizan la WebAssembly System Interface (WASI) para interactuar con los recursos del sistema. El entorno de ejecución emplea interpretación de bytecode basada en registros y despacho de hilos directos para mapear registros virtuales a registros físicos de la CPU. Incluye una interfaz de llamadas al host para mapear importaciones a funciones de C y utiliza validación estática de módulos para garantizar que el bytecode siga las reglas de la especificación antes de la ejecución. El proyecto proporciona gestión de recursos mediante límites de asignación de memoria lineal y medición de gas a nivel de instrucción para evitar bucles infinitos y el agotamiento del sistema. La observabilidad se maneja mediante rastreo de ejecución, monitoreo de flujo y perfilado de operaciones del intérprete. Para el desarrollo y control de calidad, el entorno de ejecución incluye un REPL interactivo y admite fuzzing guiado por cobertura.
High-performance WebAssembly interpreter.
Gopher-lua is a complete implementation of the Lua language and its standard libraries written natively in Go. It serves as an embedded scripting engine and virtual machine that allows Go applications to execute Lua scripts and exchange data between the host and the script environment. The project provides a bytecode compiler to transform source code into a binary format for faster execution. It enables deep integration between the two languages by allowing the registration of native Go functions to be called from scripts, and the invocation of script functions directly from Go. The engine c
Virtual machine and compiler implemented in Go.
Roc is a statically typed, functional programming language built around immutable-by-default semantics, exhaustive pattern matching on tag unions, and a type system that combines optional explicit annotations with full compile-time type inference. Its core identity centers on correctness and expressiveness, using tagged unions for error handling with a question-mark operator for early error propagation, and a trailing-bang naming convention that makes side-effect boundaries syntactically visible at every call site. The language distinguishes itself through a platform-based I/O abstraction tha
Functional language compiling to machine code or Wasm.
mruby is a lightweight Ruby interpreter designed to be embedded into C applications. It compiles Ruby source code into a compact, platform-independent bytecode that executes on a register-based virtual machine, and exposes a stable C API for host programs to initialize the interpreter, load bytecode, and invoke Ruby methods at runtime. The interpreter distinguishes itself through a tightly coupled parser and compiler that performs lexical analysis, syntax parsing, and bytecode generation in a single pass without constructing an intermediate AST, minimizing memory overhead. It also includes a
Lightweight, embeddable Ruby implementation.
Opal es un framework de frontend de Ruby y compilador que traduce código fuente Ruby a JavaScript. Funciona como un runtime web que permite el desarrollo de aplicaciones web del lado del cliente utilizando Ruby en lugar de JavaScript. El proyecto incluye un motor de plantillas HTML de Ruby que evalúa código Ruby incrustado directamente dentro de archivos de marcado. Además, se integra con entornos JavaScript empaquetando librerías centrales y dependencias en una cadena de distribución para su ejecución en un navegador web. El sistema proporciona capacidades para la compilación de Ruby a JavaScript y la capacidad de codificar y decodificar datos en Base64.
Compiler for translating Ruby to JavaScript.
Walt es un transpilador y lenguaje tipado que convierte una sintaxis similar a JavaScript en formato binario WebAssembly. Funciona como una cadena de herramientas para desarrollar lógica de alto rendimiento para navegadores y runtimes mediante la traducción de código fuente tipado a formato de texto WebAssembly. El proyecto incluye un cargador integrado en el bundler que automatiza la recompilación de archivos fuente durante el proceso de construcción. Proporciona un gestor de memoria lineal utilizado para definir diseños de datos personalizados, structs y asignadores de memoria dentro de un heap contiguo. El lenguaje admite firmas de funciones definidas, tipos numéricos y la capacidad de exportar funciones y globales o importar funciones externas desde el entorno host. Permite el uso de cierres funcionales, punteros de función y organización de datos estructurados mediante offsets de memoria binaria.
Alternative JavaScript-like syntax for WebAssembly.
Mint es un lenguaje de programación front-end y un framework web compilado diseñado para construir interfaces de usuario interactivas. Funciona como un transpilador que convierte un lenguaje de dominio específico en JavaScript y CSS estándar para su ejecución en un navegador web. La cadena de herramientas permite el desarrollo de UI con seguridad de tipos utilizando análisis de tipos estáticos para validar estructuras de datos durante la fase de compilación. Organiza la lógica de la interfaz web en una arquitectura basada en componentes, donde unidades encapsuladas sincronizan el estado interno con la vista renderizada. El sistema cubre una cadena de herramientas web compilada completa, incluyendo compilación de marcado personalizado y empaquetado de activos en tiempo de compilación para producir activos de producción optimizados.
Programming language designed for front-end web development.
JRuby is a Ruby language implementation that runs on the Java Virtual Machine. It serves as a cross-language runtime and execution environment, allowing Ruby code to run on the JVM and share memory with Java applications. The project functions as a bridge between Ruby and Java, enabling Ruby scripts to call Java classes and libraries directly. It also provides a mechanism to embed a Ruby interpreter into Java applications to allow for dynamic scripting. The runtime leverages the JVM for system scalability and ensures a consistent execution environment across different operating systems.
Java-based implementation of the Ruby language.
gojq is a JSON query engine and transformation tool implemented in Go. It serves as a Go language port of the jq command, providing a library for embedding JSON and YAML manipulation capabilities directly into Go applications. The tool functions as an arbitrary-precision JSON processor, performing mathematical operations on large integers to prevent precision loss or numeric overflow during data transformations. Its broader capabilities include filtering and reshaping structured data using a specialized query language, converting between YAML and JSON formats, and formatting date and time st
A jq implementation written in Go.
The native Clojure dialect hosted on LLVM with seamless C++ interop.
LLVM-based Clojure dialect with C++ interoperability.
A high performance implementation of the Ruby programming language, built on GraalVM.
High-performance Ruby implementation built on GraalVM.