147 repositorios
Tools and techniques that generate code during the build process to optimize runtime performance and eliminate reflection.
Explore 147 awesome GitHub repositories matching software engineering & architecture · Compile-Time Code Generation. Refine with filters or upvote what's useful.
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
Emits target assembly instructions in a single pass over the syntax tree.
This project is an educational compiler implementation and architecture demo. It serves as a small-scale C-style language compiler designed to demonstrate the fundamental stages of transforming source code into executable machine instructions. The codebase functions as a tool for compiler architecture education and design prototyping. It illustrates the process of building an educational language implementation to help users understand the mechanics of parsing and code generation. The implementation covers the primary stages of a compiler pipeline, including regular expression tokenization,
Emits machine instructions directly during the parsing phase in a single traversal of the source.
This project is a curated reference guide and cheatsheet for modern JavaScript development. It provides a collection of syntax and patterns covering ECMAScript standards, specifically focusing on contemporary language features from ES6 and later. The resource offers specialized guides on asynchronous JavaScript, functional programming patterns, and object-oriented design. It details the use of promises and async/await syntax for non-blocking operations, as well as the application of map, filter, and reduce for data transformation. The guide covers a broad range of language fundamentals, incl
Covers the implementation of generators for creating sequences that can pause and resume execution.
ButterKnife is an Android view binding library and Java annotation processor that automates the linking of UI elements and resources to class fields and methods. It functions as a system for managing view references and event listeners to reduce repetitive setup code in Android applications. The library uses compile-time code generation to replace manual view lookups and type casting with generated helper classes, ensuring a reflection-free runtime. It differentiates itself by providing mechanisms for binding interaction events directly to methods, eliminating the need for anonymous inner cla
Generates helper classes during the build process to replace manual view lookups and eliminate runtime reflection.
EventBus is a publish-subscribe messaging library designed to facilitate decoupled communication between components in Java applications. It functions as a central hub where producers dispatch events that are routed to subscribers based on the class type of the payload. By using annotation-based markers, the system maps event handlers to specific data types, allowing different parts of an application to exchange information without requiring direct references between classes. The library distinguishes itself through a focus on performance and execution control. It utilizes a compile-time inde
The Event Bus library generates a subscriber index during compilation to eliminate runtime reflection and improve execution speed by requiring public access for subscriber methods.
This project is a high-performance, lightweight C graphics library designed for creating interactive user interfaces on resource-constrained embedded hardware. It functions as a comprehensive framework that provides a widget toolkit, a rendering engine, and hardware-agnostic drivers to support the development of graphical displays on microcontrollers and embedded systems. The framework distinguishes itself through a flexible, object-oriented widget hierarchy and a declarative layout engine that supports responsive design patterns like flexbox and grid systems. It enables developers to synchro
Converts declarative interface definitions into native C code for compilation.
Slint is a declarative user interface framework designed for building native graphical applications across desktop, mobile, and embedded platforms. It utilizes a specialized markup language to define reactive interface components, which are then compiled into optimized machine code to ensure high performance and minimal resource consumption. By separating visual structure from application logic, the framework enables developers to create consistent interfaces that run efficiently on hardware ranging from resource-constrained microcontrollers to high-end desktop systems. The framework distingu
Transforms declarative interface markup into highly optimized native machine code to minimize runtime memory and CPU overhead.
This project is an open-source library of customizable mobile interface templates and screen layouts built with Flutter and Dart. It serves as a prototyping kit and design gallery, providing a collection of ready-made user interface examples and Material Design component sets for cross-platform mobile application development. The collection enables the rapid creation of application screens by providing pre-built layouts for common mobile app flows and navigation patterns. Developers can browse these interface patterns and modify colors, fonts, and layouts to align with specific brand guidelin
Uses the Dart build system to generate optimized template code during the compilation process.
Crystal is a statically typed, compiled programming language designed for high performance and memory safety. It leverages an LLVM-based compiler to translate source code into optimized machine-executable binaries, while its type-inference-based static analysis enforces strict safety rules during the build process. The language distinguishes itself through a fiber-based concurrent runtime that manages lightweight execution units for asynchronous input and output without blocking the main process. It also features a powerful compile-time macro system that allows for the inspection and transfor
Provides a powerful macro system that manipulates the abstract syntax tree to generate code dynamically during compilation.
Cube is a semantic data layer that provides a unified framework for defining business metrics, dimensions, and relationships across diverse data sources. By acting as a headless business intelligence engine, it transforms raw data into a governed model that can be queried via SQL, REST, and GraphQL interfaces. This architecture ensures consistent data definitions and logic across all downstream analytical applications and reporting tools. The platform distinguishes itself through its integrated conversational AI capabilities, which allow users to explore data using natural language. It orches
Tracks compilation wait times to detect configuration issues that impact request latency.
The .NET Compiler Platform is a collection of open-source APIs for C# and Visual Basic that provides deep code analysis, refactoring, and automated source code generation. It serves as the core infrastructure for building development tools, offering a platform to inspect, modify, and understand source code through immutable syntax trees and semantic models. The platform distinguishes itself by providing full-fidelity syntax trees that preserve every character of source code, including whitespace and comments, alongside an incremental compilation pipeline that enables near-instant feedback dur
Inspects compilation data at compile time to automatically produce and inject additional source code into the build process.
Faker is a Python library designed to generate realistic synthetic data for software testing, database prototyping, and privacy-preserving anonymization. It provides a comprehensive suite of tools to create diverse information types, including personal identities, financial records, geographic locations, and technical system metadata, allowing developers to populate environments with mock data that mimics real-world structures. The library is built on a modular provider architecture that supports dynamic method dispatch, enabling users to extend functionality by registering custom data genera
Implements dynamic method dispatch to route data generation requests to appropriate provider classes.
This project is a document transformation pipeline that compiles Markdown files into executable JavaScript components. By integrating JSX directly into standard text documents, it enables the creation of interactive content that functions as a component-based engine for modern frontend applications. The system distinguishes itself through a unified, plugin-driven architecture that processes content by converting it into an abstract syntax tree. This allows for deep customization of the compilation logic, enabling developers to map standard Markdown elements to custom interface components, inj
Translates static content files into optimized JavaScript modules during the build process to improve runtime performance.
Relay is a GraphQL client framework and state manager used for building data-driven applications. It functions as a declarative data fetching layer and a GraphQL compiler that transforms declarations into optimized runtime code with automatic type generation. The framework distinguishes itself through a build-time compilation process that generates optimized queries and a data masking system that prevents components from accessing undeclared data. It employs a normalized client-side cache to maintain consistency across entities and an optimistic update mechanism to provide immediate interface
Transforms GraphQL declarations into optimized JavaScript code using a build-time compiler to reduce runtime overhead.
Nim is a statically typed, compiled systems programming language designed for high performance and cross-platform development. It translates high-level source code into C, C++, or JavaScript, allowing developers to produce efficient native binaries or web-compatible scripts from a single codebase. The language emphasizes a clean, indentation-based syntax that simplifies code hierarchy while maintaining the power of a full-featured systems language. What distinguishes Nim is its robust metaprogramming framework, which allows developers to inspect, modify, and generate code structures during th
Executes custom functions during compilation to precompute values and optimize final output.
The Rust Programming Language Book is the official technical guide and educational resource for the Rust language. It provides a comprehensive walkthrough of the language's design, focusing on its core identity as a systems programming language that enforces memory safety and high-performance execution without the need for a garbage collector. The project is distinguished by its focus on ownership, borrowing, and lifetime tracking, which allow the compiler to verify memory safety and thread safety at compile time. It covers the language's unique approach to zero-cost abstractions, including t
Defines macros to automate repetitive coding tasks by generating source code during the compilation process.
Dagger is a compile-time dependency injection framework for Java and Android applications. It automates the construction and wiring of object graphs by generating static source code during the build process, which eliminates the need for reflection or runtime bytecode generation. The framework distinguishes itself by performing strict validation of the entire dependency structure before the application runs, ensuring that all required bindings are satisfied and identifying circular references early. It manages object lifecycles through scoped containers and supports lazy resolution, allowing
Generates static factory classes and wiring logic during the build process to eliminate reflection and runtime overhead.
Ent is a statically typed entity framework for Go that models database structures as a graph of nodes and edges. It functions as a code generation engine that transforms schema definitions into type-safe database clients, query builders, and migration scripts. By representing data as interconnected entities, the framework enables intuitive traversal of complex relationships and ensures that database interactions remain consistent with the application model at compile time. The framework distinguishes itself through its graph-based approach to data modeling and its reliance on compile-time cod
Generates type-safe database accessors and builders at compile time from schema definitions.
This project is a mathematics programming pattern library and translation guide designed to map academic mathematical symbols and formulas into programmable logic. It serves as a reference for converting complex notations into software implementations. The resource provides mapping guides for translating calculus, linear algebra, and set theory into iterative loops, functional code, and boolean expressions. It includes specific patterns for implementing piecewise functions, matrix operations, and standard mathematical operators using conditional logic and built-in language functions. The lib
Transforms calculus notations such as summations and products into programmable iterative loops.
Quarkus is a Kubernetes-native Java framework designed for building high-performance, memory-efficient applications. It utilizes ahead-of-time native compilation to transform Java code into standalone, optimized binaries that eliminate the need for a virtual machine, enabling rapid startup and reduced memory consumption. By performing code augmentation during the build phase, it shifts heavy processing tasks away from runtime, ensuring that applications are optimized for cloud-native environments. The framework distinguishes itself through a unified approach to reactive and imperative program
Executes custom logic during the build phase to scan bytecode and generate optimized metadata for runtime efficiency.