8 repository-uri
A virtual machine architecture that uses virtual registers for instructions instead of a value stack.
Distinct from Register-Pressure Optimizations: Describes the architectural choice of a register-based VM for performance, distinct from CPU register pressure optimization.
Explore 8 awesome GitHub repositories matching programming languages & runtimes · Register-Based Bytecode. Refine with filters or upvote what's useful.
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
Utilizes a set of virtual registers instead of a stack to reduce instruction count and improve execution speed.
Wasm3 este un interpretor WebAssembly conceput pentru integrarea în runtime-uri embedded. Acesta permite executarea logicii binare portabile pe microcontrolere și hardware cu resurse limitate, oferind suport pentru module care utilizează WebAssembly System Interface pentru a interacționa cu resursele sistemului. Runtime-ul folosește interpretarea bytecode bazată pe registre și dispatch-ul direct-threaded pentru a mapa registrele virtuale la registrele fizice ale CPU-ului. Include o interfață host-call pentru a mapa importurile la funcții C și utilizează validarea statică a modulelor pentru a se asigura că bytecode-ul respectă regulile specificațiilor înainte de execuție. Proiectul oferă gestionarea resurselor prin limite de alocare a memoriei liniare și contorizarea consumului de instrucțiuni (gas metering) pentru a preveni buclele infinite și epuizarea sistemului. Observabilitatea este gestionată prin tracing-ul execuției, monitorizarea fluxului și profilarea operațiunilor interpretorului. Pentru dezvoltare și asigurarea calității, runtime-ul include un REPL interactiv și suportă fuzzing ghidat de acoperire.
Employs a register-based bytecode architecture that maps virtual registers to physical CPU registers for improved performance.
Smali is a two-way binary translation toolset designed to convert Dalvik bytecode to human-readable assembly and back again. It provides a mechanism for the disassembly and assembly of executable files used in virtual machine environments. The project enables the modification of compiled Android application logic by transforming binary files into editable assembly and rebuilding them. It is used for reverse engineering, malware analysis, and the study of low-level instructions to identify program behavior or security flaws. The toolkit covers binary construction through smali code assembly a
Assigns virtual registers to handle local variables and method parameters during bytecode assembly.
seL4 is a formally verified microkernel whose C implementation is backed by machine-checked mathematical proofs of correctness, confidentiality, integrity, and availability. It enforces strict isolation between processes through hardware-enforced address space separation and a capability-based access control system, where each process holds explicit rights only to the resources it has been granted. The kernel exposes hardware resources through a minimal API of system calls that manage threads, address spaces, and inter-process communication, with synchronous IPC supporting sender-identifying b
Registers handlers for IOPort faults and VMCall instructions on IA32 guest VMs.
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
Uses a fixed set of virtual registers instead of a stack to execute bytecode, reducing instruction count and improving speed.
Acest proiect este un ghid cuprinzător de pregătire pentru interviuri tehnice și o bază de cunoștințe de informatică. Acesta servește ca resursă de studiu structurată, concepută pentru a ajuta inginerii software să revizuiască conceptele fundamentale de inginerie și să se pregătească pentru evaluările profesionale de codare. Repository-ul se concentrează pe o gamă largă de domenii teoretice și practice, inclusiv referințe detaliate pentru arhitectura aplicațiilor mobile și fundamentele sistemelor de operare. Oferă materiale curatoriate despre tiparele de arhitectură software și analiza protocoalelor de rețea pentru a sprijini dezvoltarea profesională. Conținutul acoperă capabilități fundamentale precum structurile de date și algoritmii, concurența și multithreading-ul, și gestionarea memoriei. Include, de asemenea, detalii despre arhitectura sistemelor, inclusiv programarea proceselor, comunicarea între procese și optimizarea randării UI.
Explores virtual machine architectures that use registers for instructions instead of a value stack.
AsmJit este un generator de cod mașină la runtime și un backend de compilator JIT care traduce definiții de nivel înalt în instrucțiuni executabile pentru procesor. Acesta oferă un API unificat de emisie a instrucțiunilor și un manager de memorie executabilă pentru a aloca și proteja pagini de memorie virtuală pe mai multe arhitecturi CPU. Biblioteca funcționează ca un motor de asamblare pentru x86 și ARM, suportând generarea de asamblare cross-platform printr-un backend unificat. Permite crearea de cod mașină optimizat pentru diferite CPU-uri, menținând în același timp un singur codebase. Proiectul acoperă abstracții de sistem de nivel scăzut, inclusiv alocarea registrelor, convenții de apelare specifice arhitecturii și instrumentarea binară dinamică. Acesta gestionează traducerea reprezentărilor intermediare în cod binar folosind rezoluția offset-urilor bazată pe etichete și emisia directă în buffer.
Maps abstract virtual registers to physical hardware registers to optimize resource use and execution speed.
Janet is a Lisp-based dynamic programming language featuring a register-based bytecode virtual machine and an embeddable scripting engine. It functions as a fiber-based concurrency runtime and includes a parsing engine based on Parsing Expression Grammars. The project is distinguished by its ability to be integrated into C or C++ applications via a minimal header interface. It utilizes a Lisp-style macro system for compile-time code transformation and employs prototype-based table inheritance for object-oriented behavior. The runtime covers a broad set of capabilities, including asynchronous
Features a register-based bytecode virtual machine to minimize stack operations and improve performance.