16 dépôts
The process of creating custom compilers and build systems to transform source code into optimized machine instructions.
Distinct from Build Toolchains: Candidates focus on configuration or specific platform targets (mobile) rather than the general act of developing the toolchain itself.
Explore 16 awesome GitHub repositories matching programming languages & runtimes · Compiler Toolchain Development. Refine with filters or upvote what's useful.
Zig is a low-level systems programming language designed for writing high-performance software that interacts directly with hardware. It focuses on the transformation of source code into machine binaries for the execution of low-level operations. The project is distinguished by its native support for cross-compilation, allowing binaries for various operating systems and CPU architectures to be built from a single host. It provides direct interoperability with the C language, enabling the import of headers and function calls without a foreign function interface. The language utilizes manual m
Provides a comprehensive toolchain and compiler infrastructure designed for generating optimized machine code for specific hardware.
This project is an educational compiler implementation and a minimalist compiler construction tutorial. It serves as a practical example of how to build a functional compiler through a simplified end-to-end development process, transforming source code into executable instructions. The implementation is designed to teach the fundamentals of language implementation and compiler design. It focuses on the essential mechanics of transforming source code by demonstrating the core architecture of a translation process. The system covers the primary stages of compilation, including lexical analysis
Implements a minimal compiler to study lexing, parsing, and code generation.
This project is a JavaScript full-stack tutorial providing a step-by-step guide to building a complete web application from scratch. It focuses on the manual implementation of a custom JavaScript toolchain, encompassing the development of a server-side rendering workflow and a client-side state manager. The project distinguishes itself by implementing core development utilities without high-level frameworks, including custom solutions for bundling, transpilation, linting, and hot module replacement. It also features a real-time communication system based on WebSockets for bidirectional messag
Provides step-by-step instructions for creating a custom development environment without high-level frameworks.
AISystem is a comprehensive AI full-stack infrastructure project covering the entire pipeline from AI chip architecture to high-level training frameworks. It encompasses the development of AI compiler frameworks, inference engines, and distributed training orchestrators designed to coordinate workloads across a heterogeneous compute stack of CPUs, GPUs, and NPUs. The project focuses on the deep integration of software and hardware, employing software-hardware co-design to align tensor layouts with physical memory structures. It provides specialized capabilities for accelerating Transformer mo
A system for translating high-level neural network graphs into optimized hardware-specific machine code and kernels.
This project is a comprehensive manual and educational resource focused on the Babel compiler. It serves as a documentation guide and handbook for understanding the inner workings of JavaScript compilation, specifically regarding the transformation of source code. The material provides a technical walkthrough for developing custom plugins and extensions. It covers the process of creating tailored transformations to modify how JavaScript is parsed and generated. The content encompasses the broader JavaScript compilation workflow, focusing on abstract syntax tree manipulation, code generation,
Provides educational materials to teach the internal mechanics and workings of the Babel compilation toolchain.
c4 is a minimalist C compiler and programming tool designed to translate C source code into executable machine code using a small set of functions. It functions as a stripped-down compilation utility focused on a tiny codebase. The project serves as an educational tool for studying the internal mechanics of the compilation process. It implements minimalist C compilation to demonstrate how source files are transformed into low-level binary executables. The compiler utilizes a single-pass compilation model with recursive descent parsing and direct-to-binary emission. It manages the translation
Features a stripped-down codebase and a limited set of functions to illustrate essential compilation mechanics.
OCaml is a strongly typed functional language featuring a sophisticated type system and a focus on safety and expressiveness. It provides a comprehensive compiling toolchain that transforms source code into either portable bytecode or high-performance native binaries. The project is distinguished by a shared memory parallel runtime that executes computations across multiple processor cores using domains, and an algebraic effect system for managing side effects and control flow through execution context handlers. It also includes a dedicated parser generator to automatically create lexers and
Provides a complete system for developing the language's compiler, type system, and runtime components.
This project consists of technical instructional guides and a structured computer science curriculum designed to teach the construction of a full computing stack from transistors up to a web browser. It provides a 12-week educational course that covers the fundamental domains of computer architecture and digital logic design. The curriculum is distinguished by its first-principles approach, guiding the learner through the engineering of CPUs, FPGAs, and PCBs using digital logic and hardware description languages. It includes specific syllabi for building a hardware design, a TCP/IP network st
Guides the creation of a complete toolchain featuring an assembler, C compiler, and linker.
Swift for TensorFlow is a custom toolchain that extends the Swift language with first-class automatic differentiation and differentiable types, enabling gradient-based computation directly within the compiler. It integrates the Swift compiler with TensorFlow runtime and XLA backends, allowing tensor operations to be compiled and executed on hardware-accelerated hardware for high-performance machine learning. The project distinguishes itself through compiler-integrated automatic differentiation that computes gradients of user-defined functions and types during compilation, eliminating the need
Provides a custom Swift toolchain integrating the compiler with TensorFlow runtime and XLA backend for ML.
Bitwise is a computer architecture education kit and a comprehensive set of guides for building a custom CPU, operating system, and compiler from scratch. It serves as a CPU design tutorial and a practical framework for implementing a unique instruction set architecture. The project provides a custom instruction set architecture toolchain, including resources for creating a matching assembler and compiler. It further includes a hardware development guide for synthesizing computer components and peripheral controllers for deployment on programmable logic devices and FPGAs. The kit covers full
Includes guides for creating a custom compiler and assembler to bootstrap a target architecture from a host system.
Ce projet est une ressource éducative complète et un programme axé sur la conception et l'implémentation de la pile logicielle et matérielle complète du machine learning. Il sert de référence technique pour l'architecture des systèmes de machine learning, allant des interfaces de programmation de bas niveau à l'infrastructure de déploiement à grande échelle. Le projet fournit des conseils pédagogiques sur plusieurs domaines spécialisés, notamment le développement de compilateurs IA via des représentations intermédiaires et des optimisations de graphes. Il couvre les modèles architecturaux requis pour l'entraînement distribué sur des clusters GPU et la programmation d'accélérateurs matériels pour optimiser les charges de travail sur des puces spécialisées. La ressource détaille également l'implémentation de frameworks de service de modèles pour les environnements de production et la conception de pipelines d'apprentissage par renforcement. Sa portée s'étend aux composants de base des systèmes ML, tels que la différenciation automatique, les abstractions de tenseurs et l'orchestration des ressources GPU.
Implements compilers that transform neural network compute graphs into optimized hardware-specific machine code.
This project is a cross-compiler toolchain for RISC-V software development. It provides the necessary components to compile C and C++ source code into executable binaries and libraries specifically for the RISC-V hardware architecture. The toolchain supports multi-architecture binary generation and multilib capabilities, allowing a single installation to target various instruction set specifications and bit-widths. It integrates with alternative compilers such as LLVM and Clang and includes a bootstrapped build pipeline to produce high-performance versions of the tools. The system covers bro
Runs standardized test suites against simulators to ensure the functionality of the compiler and libraries.
Ce projet est un guide technique sur les rouages internes du langage Go, se concentrant sur l'analyse du compilateur, du runtime et de la toolchain Go. Il sert de ressource pour étudier le code source officiel afin de comprendre les principes techniques de fonctionnement du système. La ressource propose une déconstruction du processus de build de Go, retraçant le code depuis l'analyse lexicale et syntaxique jusqu'aux passes d'optimisation et aux représentations intermédiaires, pour aboutir au binaire machine final. Elle inclut une analyse du scheduler et du garbage collector de Go pour examiner la gestion de la mémoire et les modèles d'exécution. Le projet couvre la visualisation des passes du compilateur et l'observation des états internes du runtime. Ces capacités soutiennent l'étude de la toolchain Go et l'identification de modèles de gestion des ressources pour l'optimisation des performances.
Provides educational insights into the mechanics of the Go build system and compiler toolchain.
Wild is a binary linker and compiler integration tool used to merge multiple object files into single executable binaries, shared libraries, or static archives. It functions as a replacement for standard system linkers, automating the final stage of the compilation process to generate binaries across different operating system architectures. The project provides custom binary linking and toolchain integration, allowing for the modification of how compilers resolve symbols and determine memory layouts. It specifically handles the organization of machine code and data sections to meet the requi
Modifies the final stage of the compilation process to control memory layout and symbol resolution.
The project is a reusable collection of modular compiler and toolchain technologies designed for building optimizers, code generators, and multi-language programming environments. It provides foundational compiler frontend technologies that translate source code written in C, C++, and Objective-C into a low-level programming language and intermediate code format. This intermediate representation enables cross-language analysis, program transformation, and target-independent optimization alongside a cross-platform programming framework that allows developers to write single-source accelerated a
Compiles the compiler toolchain and its associated runtimes from source using automated configuration and build scripts.
The Arm Architecture Binary Interface Specification is a technical standard that defines the rules for procedure calls, object file formats, and exception handling. It serves as a foundational framework for ensuring binary-level compatibility between software components and operating systems across diverse Arm processor implementations. This specification establishes the technical requirements for how software interacts with hardware at the binary level. By standardizing register-based calling conventions, stack-frame layouts, and data-type alignment rules, it enables consistent behavior for
Supports the development of compilers that generate machine code compliant with standardized binary formats.