28 repository-uri
The process of emitting native processor instructions from an intermediate representation.
Distinct from Compile-Time Code Generation: Candidates cover UI code generation or IR graphs, but not the general capability of emitting optimized native machine code.
Explore 28 awesome GitHub repositories matching programming languages & runtimes · Machine Code Generation. Refine with filters or upvote what's useful.
Protocol Buffers is a binary serialization framework used to encode structured information into compact payloads to reduce network bandwidth and storage. It functions as a cross-language data interchange standard that enables different platforms and languages to exchange structured data using a shared schema. The project includes an interface definition language compiler that transforms schema definitions into type-safe source code for multiple target programming languages. This mechanism decouples data structures from specific language memory layouts and ensures consistent data handling acro
Uses a common definition format to decouple data structures from specific language memory layouts.
Wasmtime is a WebAssembly runtime and sandboxed bytecode executor designed to run WebAssembly bytecode on a host system. It functions as an embeddable engine that integrates into applications through native APIs and language-specific bindings, as well as a standalone execution environment accessible via a command line interface. It is a WASI compatible runtime, implementing the WebAssembly System Interface to provide portable access to system resources. The engine utilizes a JIT compilation model to translate intermediate representation into optimized machine code for various CPU architecture
Translates target-independent intermediate representation into executable machine code optimized for various CPU architectures.
This project is a compiler development tutorial that provides a series of guides and exercises for building a complete compiler from scratch. It focuses on the implementation of a structured compilation pipeline to transform high-level source code into executable machine instructions. The project covers the creation of a machine code generator for specific processor architectures and a static analysis framework. This framework includes methodologies for implementing type checking and constant folding to verify logic correctness before the final execution phase. The instructional material enc
Provides the capability to emit native processor instructions from an intermediate representation for direct hardware execution.
This project is a multi-language compiler collection and cross-platform toolchain used to translate source code from various programming languages into optimized machine code for different hardware architectures. It provides a suite of tools including an optimizing compiler backend, a machine code generator, and a comprehensive runtime library suite that implements necessary execution environments and support functions. The system utilizes a multi-pass compilation pipeline and pluggable language front-ends to process source code into intermediate representations. It distinguishes itself throu
Converts intermediate representations into hardware-specific native instructions to ensure high performance on target CPUs.
GB Studio este un mediu de dezvoltare integrat vizual și un motor de jocuri pentru crearea de jocuri pe 8 biți pentru hardware-ul Game Boy. Funcționează ca un compilator ROM pentru hardware retro care transpila logica grafică în assembly Z80 nativ și imagini binare compatibile cu handheld-urile și emulatoarele originale. Proiectul servește drept instrument de build cross-platform, generând atât ROM-uri hardware native, cât și build-uri compatibile cu web dintr-o singură sursă de proiect. Utilizează o interfață drag-and-drop pentru logica jocului și designul scenelor, permițând crearea de mecanici de joc și plasarea activelor fără a scrie cod mașină de nivel scăzut. Setul de instrumente include un pipeline pentru procesarea imaginilor și audio-ului brut în formate și palete specifice hardware-ului. De asemenea, oferă capabilități de profilare a performanței pentru a analiza statisticile de sincronizare și logurile de execuție pentru optimizarea responsivității software-ului pe hardware limitat.
Translates project source files into a portable intermediate representation before generating final machine code for target platforms.
ChakraCore is an embeddable JavaScript engine and high-performance scripting runtime. It provides a just-in-time compiler that converts JavaScript source code into optimized machine code during runtime to increase execution speed and throughput. The engine utilizes a multi-tiered compilation pipeline and tiered machine code generation to balance startup time with execution speed. Memory is managed via a concurrent garbage collector that reclaims unreachable objects on background threads to minimize application pauses. The project provides capabilities for embedded JavaScript execution and au
Generates optimized native machine code across multiple tiers to increase overall execution throughput.
Compiles the same pipeline to run on CPUs and GPUs without algorithm changes.
Red is a programming language with a native compiler that translates high-level source code into standalone executables for Windows, macOS, and Linux without external runtime dependencies. It combines a cross-platform GUI development framework that renders native operating system widgets from a single codebase with a reactive data binding system that automatically synchronizes UI state with data sources. The language also includes an embedded DSL and parsing engine based on PEG grammar rules for defining and processing domain-specific languages within the language itself. The project distingu
Translates high-level Red code into a C-like intermediate representation before generating native machine code.
MMdnn este un convertor și migrator de modele de deep learning conceput pentru a traduce arhitecturi și ponderi de rețele neuronale între diferite framework-uri, precum TensorFlow, PyTorch și Keras. Acesta utilizează o reprezentare intermediară standardizată pentru a decupla structurile rețelei și ponderile de implementările specifice ale framework-urilor, permițând transformarea modelelor pre-antrenate între medii diferite. Proiectul se distinge prin generarea de cod Python nativ de reconstrucție din reprezentările sale intermediare, permițând modelelor să fie reconstruite și ajustate (fine-tuned) în mediile țintă. Include, de asemenea, instrumente specializate pentru implementarea modelelor pe dispozitive mobile, transformând modelele de deep learning în formate compatibile precum CoreML și TensorFlow Lite. Sistemul oferă o suită mai largă de capabilități, inclusiv vizualizarea arhitecturii rețelelor neuronale pentru inspectarea structurilor grafice și a metadatelor, precum și execuția de inferență pentru a valida faptul că modelele convertite își păstrează comportamentul și acuratețea originală. Utilitare suplimentare gestionează preluarea ponderilor pre-antrenate din repository-uri externe și asamblarea checkpoint-urilor de modele gata de implementare.
Parses model files into a framework-neutral intermediate representation to facilitate visualization and conversion.
LuaJIT este o implementare de înaltă performanță a limbajului Lua și un compilator just-in-time. Funcționează ca un motor de scripting încorporat și un traducător binar dinamic care convertește bytecode-ul portabil în cod mașină nativ în timpul execuției. Proiectul se concentrează pe scripting de înaltă performanță prin traducerea bytecode-ului în instrucțiuni specifice arhitecturii pentru a atinge viteze de execuție apropiate de codul C compilat. Utilizează un mediu de runtime ușor, conceput pentru un overhead minim de memorie. Sistemul suportă procesarea datelor binare prin operații pe biți și permite gestionarea sarcinilor asincrone prin integrarea corutinelor C. De asemenea, oferă capabilități pentru generarea de cod la runtime și crearea de instrucțiuni personalizate de cod mașină.
Translates bytecode into native machine code during execution to optimize overall program performance.
go-ast-book este o colecție de resurse educaționale și tehnice axate pe analiza arborelui sintactic abstract (AST), dezvoltarea de compilatoare și verificarea statică a codului. Oferă ghiduri și manuale pentru parsarea, parcurgerea și analizarea codului sursă Go pentru a extrage semnificația semantică. Proiectul servește ca referință pentru construirea frontend-urilor de compilatoare, acoperind traducerea codului de nivel înalt în reprezentări intermediare și forme de atribuire statică unică (SSA). De asemenea, oferă instrucțiuni pentru utilizarea acestor tehnici în dezvoltarea de tooling pentru limbaje și efectuarea analizei statice de cod. Resursele acoperă o gamă largă de capabilități de analiză statică, inclusiv tokenizarea lexicală, parsarea structurală a expresiilor și declarațiilor, și urmărirea coordonatelor pentru fișierele sursă. Detaliază, de asemenea, procesele de analiză semantică precum rezoluția identificatorilor, verificarea corectitudinii tipurilor și analiza fluxului de control pentru concurență și execuție amânată.
Details the transformation of high-level syntax trees into single static assignment form for optimized execution.
rust-cuda este un framework de programare GPU și un compilator de dispozitiv care permite dezvoltarea și execuția kernel-urilor de înaltă performanță pe hardware NVIDIA folosind Rust. Oferă un wrapper de driver pentru a gestiona alocarea memoriei dispozitivului și lansarea kernel-ului, servind efectiv ca un sistem pentru scrierea logicii de calcul GPU fără a se baza pe C++. Proiectul include o bibliotecă de calcul cu primitive optimizate hardware pentru accelerarea rețelelor neuronale și raytracing accelerat hardware. Utilizează un toolchain de compilare care traduce codul sursă într-o reprezentare intermediară low-level pentru execuția pe procesoare grafice. Framework-ul acoperă gestionarea resurselor dispozitivului, dezvoltarea kernel-ului și simularea operațiunilor cu numere întregi de înaltă precizie. Suportă, de asemenea, generarea de numere aleatorii pe dispozitiv și optimizări de calcul specifice țintei. Sunt disponibile imagini de container pre-configurate pentru a simplifica furnizarea toolchain-ului de compilare și a mediului de dezvoltare pe diferite arhitecturi hardware.
Compiles Rust source code into a PTX-based intermediate representation for GPU execution.
Bosque este un limbaj de programare experimental și o platformă de dezvoltare concepută pentru construcția software asistată de mașină. Combină semantica programării funcționale cu sintaxa imperativă pentru a impune corectitudinea logicii și siguranța la runtime, oferind un mediu sigur din punct de vedere al tipurilor (type-safe) care utilizează modele de date structurate pentru a menține integritatea informațiilor pe tot parcursul ciclului de viață al aplicației. Platforma se distinge prin integrarea profundă cu instrumente de verificare formală, incluzând demonstratoare automate de teoreme și motoare de execuție simbolică. Prin transformarea codului sursă într-o reprezentare intermediară regularizată, sistemul permite raționamentul automat pentru a demonstra absența erorilor de runtime și a încălcărilor logice. Mai mult, runtime-ul este proiectat pentru performanță predictibilă, utilizând un interpretor specializat care elimină pauzele de garbage collection pentru a asigura o latență de execuție consistentă. Proiectul oferă o suită completă de instrumente pentru dezvoltarea de înaltă fiabilitate, acoperind gestionarea pachetelor de proiect, urmărirea dependențelor și verificarea automatizată a proprietăților codului. De asemenea, suportă designul de interfețe agnostice față de limbaj, permițând dezvoltatorilor să definească structuri de date partajate și contracte de servicii care asigură o validare consistentă pe diverse componente software.
Transforms source code into a standardized intermediate representation to enable automated analysis and formal verification of program logic.
Lottie este un motor de animație vectorială JSON și un player cross-platform care randează grafică în mișcare independentă de rezoluție. Acesta funcționează ca un renderer runtime care traduce compozițiile Adobe After Effects în animații în timp real folosind o reprezentare intermediară bazată pe JSON. Proiectul se distinge prin permiterea controlului dinamic asupra activelor vectoriale la runtime. Acesta permite modificarea programatică a proprietăților animației, culorilor și stărilor de redare prin key-path-uri ierarhice și theming dinamic. Acest lucru permite animațiilor să răspundă la schimbările stării aplicației în timp real și la gesturile utilizatorului. Motorul acoperă o gamă largă de capabilități, inclusiv randarea accelerată hardware și caching-ul modelelor pentru performanță ridicată. Oferă un control cuprinzător al redării pentru căutarea cadrelor, looping-ul segmentelor și declanșarea evenimentelor, alături de un sistem de randare care suportă camere 3D, morphing-ul formelor și generarea procedurală de vectori. Gestionarea activelor este realizată prin importul de date din surse multiple, suportând bundle-uri locale, URL-uri de rețea și diverse formate de fișiere vectoriale.
Uses a JSON-based intermediate representation to decouple design tool compositions from cross-platform runtime playback.
Pyston este o implementare de înaltă performanță a limbajului Python și un compilator JIT. Funcționează ca un mediu de runtime care execută cod Python menținând în același timp compatibilitatea cu specificația standard a limbajului. Proiectul accelerează execuția prin traducerea bytecode-ului Python în cod mașină nativ în timpul execuției programului. Utilizează un pipeline de compilare pe mai multe niveluri și optimizarea execuției adaptive pentru a trece de la interpretare la cod compilat pe baza comportamentului la runtime. Această implementare menține compatibilitatea binară cu API-ul C standard Python pentru a suporta extensii native. Runtime-ul include instrumente pentru optimizarea performanței și benchmarking, inclusiv capacitatea de a comuta între nivelurile de compilare și modurile de interpretare. Oferă funcții de monitorizare și observabilitate, cum ar fi exportul statisticilor interne și verbozitatea runtime configurabilă pentru logarea diagnostică și analiza execuției.
Translates frequently executed Python bytecode into native machine instructions to increase execution speed.
LLVM este o infrastructură modulară de compilare și un framework format dintr-o colecție de biblioteci reutilizabile, utilizate pentru a construi front-end-uri de limbaje și instrumente de optimizare. Acesta funcționează ca o mașină virtuală de nivel scăzut care oferă o reprezentare intermediară și un pipeline de optimizare pentru a permite generarea de cod independent de limbaj. Proiectul oferă un set de instrumente pentru compilare just-in-time, traducând reprezentările intermediare în cod mașină la runtime pentru execuție imediată. Designul său modular permite dezvoltatorilor să creeze front-end-uri personalizate pentru limbaje și medii de runtime de înaltă performanță pe multiple arhitecturi țintă. Infrastructura acoperă optimizarea codului de înaltă performanță și coordonarea toolchain-urilor cross-platform, incluzând integrarea compilatoarelor, a mediilor de runtime și a debuggerelor.
Implements an intermediate representation using static single assignment form to simplify data flow analysis and optimization.
Yosys este un sintetizator de logică digitală și un instrument de sinteză RTL care transformă codul limbajului de descriere hardware în reprezentări optimizate la nivel de poartă. Funcționează ca un optimizator de logică hardware și instrument de verificare formală, oferind un framework pentru a converti reprezentările generice de circuit în celule specifice de bibliotecă tehnologică pentru platforme hardware țintă. Proiectul servește drept automatizator de design hardware printr-un mediu scriptabil utilizat pentru a executa secvențe de comenzi de sinteză. Această automatizare permite gestionarea fluxurilor de lucru complexe de hardware digital, integrând sinteza designului RTL cu maparea celulelor tehnologice. Capabilitățile sale de verificare și analiză includ verificarea simbolică a modelelor și verificarea echivalenței designului. Aceste instrumente susțin verificarea formală a hardware-ului prin verificarea proprietăților de siguranță și „liveness” și generarea de test bench-uri de simulare pentru a asigura că design-urile corespund specificațiilor lor originale.
Uses directed graphs of cells and nets as an intermediate representation for hardware design analysis and transformation.
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.
Produces optimized machine code for multiple CPU architectures from a single unified API.
Open Model Zoo este o colecție curatoriată de modele de deep learning pre-antrenate și optimizate, concepute pentru inferență de înaltă performanță folosind OpenVINO. Acesta servește drept depozit de modele și framework de implementare care eficientizează integrarea rețelelor neuronale în mediile de producție. Proiectul utilizează un manifest centralizat și un registru versionat pentru a automatiza descărcarea și organizarea ponderilor modelelor și a metadatelor. Include instrumente pentru benchmarking-ul performanței inferenței și validarea acurateței modelelor prin compararea output-urilor cu tensorii ground-truth pentru a cuantifica pierderea de precizie. Ecosistemul oferă implementări de referință și o arhitectură demo modulară pentru a decupla motoarele de inferență de logica aplicației. Aceste instrumente suportă implementarea sarcinilor de viziune computerizată prin wrappere standardizate care abstractizează cerințele de preprocesare și postprocesare.
Translates diverse deep learning framework formats into a unified intermediate representation for hardware-independent execution.
Acest proiect este un compilator de obfuscator LLVM și un obfuscator de cod mașină conceput pentru a proteja aplicațiile C++ împotriva decompilării și analizei statice. Acesta funcționează ca un framework de pass-uri LLVM care transformă reprezentarea intermediară în cod mașină complex pentru a preveni ingineria inversă a logicii programului. Instrumentul implementează întărirea securității binare și măsuri anti-inginerie inversă pentru a proteja proprietatea intelectuală. Realizează acest lucru prin modificarea pipeline-ului de compilare pentru a ascunde fluxul de control original și structurile de date. Procesul de transformare include aplatizarea fluxului de control, injectarea de predicate opace și substituția instrucțiunilor. Complică în continuare binarul prin inserarea de cod mort și modificarea instrucțiunilor mașină, păstrând în același timp semantica de execuție originală.
Implements low-level modification of machine instructions to protect binaries from static analysis.