9 Repos
Tools that translate high-level logic entirely into C source code.
Distinct from Inline C Code Embeddings: Distinct from Inline C Code Embeddings: generates full source files rather than just embedding snippets.
Explore 9 awesome GitHub repositories matching programming languages & runtimes · C Code Generators. Refine with filters or upvote what's useful.
This project is a keyboard firmware framework and programmable keyboard ecosystem designed for Atmel AVR and ARM microcontrollers. It provides the embedded software necessary to implement the USB Human Interface Device standard, allowing hardware to communicate keystrokes and mouse movements to a host computer. The framework distinguishes itself by offering a comprehensive toolchain for custom hardware development, including a command line interface for project scaffolding, firmware flashing, and configuration linting. It supports a variety of flexible configuration methods, allowing users to
Converts structured JSON configuration files into C source code to automate firmware builds.
cppfront ist ein C++-Spracherweiterungs-Frontend und ein Source-to-Source-Übersetzer. Er fungiert als Syntax-Transformator, der experimentelle Spracherweiterungen in standardkonformen C++-Code konvertiert, was das Prototyping neuer Sprachfunktionen innerhalb bestehender Build-Systeme ermöglicht. Das Projekt bietet eine Übersetzungsschicht, die Unterstützung für Pattern-Matching, Contracts und String-Interpolation hinzufügt. Es enthält ein Metaprogrammierungs-Tool für Compile-Time-Reflection und automatisierte Code-Generierung unter Verwendung spezialisierter Metafunktionen. Das System automatisiert verschiedene Entwicklungsaufgaben, einschließlich der Auflösung der Abhängigkeitsreihenfolge durch automatische Vorwärtsdeklarationen und die Verwaltung von Parameterübergabemodi. Zudem wendet es statische Analysen an, um automatische Bounds-Checks einzufügen und die Ressourcenverwaltung durch Anwendung von Move-Semantics am letzten Verwendungspunkt einer Variablen zu optimieren. Das Tool enthält einen Verifizierungsmechanismus, um sicherzustellen, dass der Standard-Quellcode während des Übersetzungsprozesses unverändert bleibt, um Syntax-Regressionen zu verhindern.
Implements a system for compile-time reflection and automated code generation using specialized C++ metafunctions.
Nanopb ist eine leichtgewichtige C-Implementierung von Protocol Buffers, die für ressourcenbeschränkte Systeme und Mikrocontroller entwickelt wurde. Sie fungiert sowohl als eingebettete Serialisierungsbibliothek zum Enkodieren und Dekodieren strukturierter Daten als auch als Codegenerator, der Definitionsdateien in kompakte C-Quell- und Header-Dateien umwandelt. Das Projekt zeichnet sich durch seinen Fokus auf statische Speicherallokation aus und verwendet feste Maximalgrößen für Strings und Arrays, um dynamische Speicherallokation und Heap-Fragmentierung zu vermeiden. Es setzt einen Callback-basierten Streaming-Mechanismus ein, um Nachrichten oder Felder zu verarbeiten, die den verfügbaren physischen RAM überschreiten, was die Handhabung von Daten variabler Länge ermöglicht, ohne den Systemspeicher zu erschöpfen. Die Bibliothek bietet breite Funktionen für Binärserialisierung, einschließlich Berechnung der enkodierten Größe, Verfolgung der Präsenz von Sub-Messages und Transport-Level-Framing. Sie enthält zudem Reflexions-Utilities für Feld-Iterationen, UTF-8-String-Validierung und strikte Grenzwerterzwingung, um Speichersicherheit beim Parsen nicht vertrauenswürdiger Binäreingaben zu gewährleisten.
Translates Protocol Buffer definition files into compact C source and header files for embedded firmware.
Wuffs is a toolset for generating memory-safe, sandboxed parsers and decoders from domain-specific language specifications. It functions as a compiler that transforms these specifications into executable code for C, Go, or Rust, specifically designed to decode untrusted file formats while preventing buffer and integer overflows. The project employs a sandboxed execution model that prohibits system calls and manual memory management to ensure computations are side-effect free. It utilizes a refined type system and compile-time constraint verification to enforce memory safety, alongside saturat
Translates a domain-specific language into C source code to generate memory-safe parsing libraries.
AITemplate ist ein Ahead-of-Time-Deep-Learning-Compiler, der PyTorch-neuronale Netze in eigenständigen C++-Quellcode übersetzt. Er fungiert als PyTorch-zu-C++-Compiler und GPU-Kernel-Fusion-Engine und erzeugt in sich geschlossene ausführbare Binärdateien, die Inferenz ausführen, ohne einen Python-Interpreter oder eine Deep-Learning-Framework-Runtime zu benötigen. Das Projekt generiert optimierten CUDA- und HIP-C++-Code speziell für NVIDIA TensorCores und AMD MatrixCores. Es konzentriert sich auf die Maximierung des Durchsatzes für Gleitkommaoperationen mit halber Präzision durch ein System, das mehrere neuronale Netzwerkoperatoren zu einzelnen GPU-Kernels kombiniert, um Speicher-Overhead und Latenz zu minimieren. Das Toolset deckt GPU-Inferenzbeschleunigung und High-Performance-Computing ab und bietet Funktionen für die Entwicklung benutzerdefinierter GPU-Operatoren sowie das Mapping von Graph-Knoten auf hardware-spezifische Templates. Es enthält Utility-Unterstützung für das Benchmarking der Inferenz-Performance und die Visualisierung von Modelloptimierungen.
Translates neural network computation graphs into standalone C++ source code to remove framework runtime dependencies.
Koka ist eine statisch typisierte funktionale Programmiersprache mit einem algebraischen Effektsystem. Sie verwendet ein starkes Typsystem, um die Korrektheit von Programmen zu verifizieren und Seiteneffekte zur Kompilierzeit zu verfolgen. Die Sprache zeichnet sich durch einen Referenzzählungs-Compiler aus, der Quellcode in nativen C-Code umwandelt, wodurch ein Garbage Collector überflüssig wird. Sie verwendet wahrnehmungsbasierte In-Place-Updates, um den Speicher-Overhead zu reduzieren, und nutzt Tail Recursion Modulo Cons für die Konstruktion von Datenstrukturen mit konstantem Speicherbedarf. Das System bietet eine umfassende Standardbibliothek, die numerische Operationen mit beliebiger Präzisionsarithmetik, String-Verarbeitung mit effizienten Views und koinduktive Datenmodellierung für unendliche Strukturen abdeckt. Sie enthält zudem integrierte Unterstützung für hardware-sampling-basiertes Ausführungs-Profiling sowie einen komponierbaren Mechanismus zur Behandlung von Exceptions und asynchronen Abläufen.
Transforms source language constructs into optimized C code for native execution.
Zen-C is a multi-target systems language and source-to-source compiler that translates high-level logic into human-readable GNU C or C11 code. It functions as a JIT-enabled programming language with an in-process compiler for real-time interactive code evaluation and testing. The project serves as a CUDA GPU kernel generator, mapping specialized syntax to CUDA C++ using device attributes to target graphics hardware. It acts as an interoperability layer capable of emitting compatible code for C++, Objective-C, and Lisp to bridge native system frameworks and libraries. The language includes an
Converts high-level logic into human-readable GNU C or C11 code.
This project is a collection of operating systems courseware and educational programming exercises designed for studying operating system design and implementation. It provides a set of concept simulators for modeling CPU scheduling, memory virtualization, and concurrency mechanisms. The project includes specialized tools such as a concurrency simulation lab for experimenting with synchronization, a file system modeling suite for studying disk persistence and RAID configurations, and a process tree visualizer for displaying parent-child relationship hierarchies. The software covers broader c
Generates C source code to illustrate the execution flow and process management of forking programs.
Taco is a sparse tensor algebra compiler that translates high-level tensor index expressions into optimized machine code. It functions as a numerical code generator, producing specialized C kernels designed to execute complex multidimensional array operations efficiently on both CPU and GPU hardware. The project distinguishes itself by allowing users to define custom tensor storage layouts by composing dimension-level formats, such as dense or compressed structures, to match the specific sparsity patterns of their datasets. By analyzing the mathematical structure of tensor operations at compi
Generates specialized C kernels from high-level tensor index expressions to accelerate numerical data processing on CPUs and GPUs.