awesome-repositories.com
Blog
MCP
awesome-repositories.com

Discover the best open-source repositories with AI-powered search.

ExploreCurated searchesOpen-source alternativesSelf-hosted softwareBlogSitemap
ProjectMCP serverAboutHow we rankPress
LegalPrivacyTerms
© 2026 Bringes Technology SRL·VAT RO45896025·hello@awesome-repositories.com
grin-compiler avatar

grin-compiler/grin

0
View on GitHub↗
1,062 stars·41 forks·Haskell·26 viewsgrin-compiler.github.io↗

Grin

Grin is a compiler infrastructure designed for the translation and optimization of high-level functional languages. It functions as a graph-reduction compiler, transforming source code into a standardized intermediate representation that facilitates whole-program analysis and efficient execution across diverse hardware architectures.

The project distinguishes itself through a modular backend infrastructure that separates intermediate representation management from target-specific code generation. By utilizing graph-based transformations, the system performs advanced optimizations such as value propagation through conditional branches and the conversion of high-level semantics into explicit reduction steps, which minimizes memory overhead and redundant computations.

The compiler provides a comprehensive framework for inspecting and serializing program state at various stages of the compilation process. It supports a wide range of structural and whole-program optimizations, including dead code elimination and memory layout refinement, to produce optimized machine-readable code for desktop, mobile, and web platforms.

Features

  • Functional Programming Compilers - Provides a compiler infrastructure that translates high-level functional code into optimized intermediate representations for diverse hardware architectures.
  • Compiler Backends - Builds modular infrastructure to translate intermediate code into machine-readable formats for specific hardware targets.
  • Reduction Transformations - Implements lazy evaluation by converting functional semantics into explicit graph reduction steps to manage deferred computation.
  • Compiler Intermediate Representations - Uses a directed graph-based intermediate representation to enable complex whole-program analysis and optimization during compilation.
  • Graph Compilation - Applies graph-based transformations to functional code to eliminate redundant computations and improve memory layout.
  • Backend Infrastructure - Provides a modular backend infrastructure that separates intermediate representation management from target-specific code generation.
  • Binary Size Optimizations - Reduces binary size by removing dead code, unused type instances, and redundant external symbols.
  • Whole-Program Analysis - Performs whole-program analysis to eliminate redundant operations and reduce memory usage, resulting in faster execution times.
  • Serialization Frameworks - Provides a comprehensive framework for serializing and analyzing program state during compilation to facilitate performance tuning.
  • Runtime Code Optimizations - Optimizes runtime execution by removing redundant computations and refining memory layout.
  • Structural Simplification - Performs structural transformations on intermediate code to normalize common patterns and prepare the program for advanced optimization passes.
  • Branch Propagation - Optimizes case expressions by propagating values directly through branches to eliminate redundant data wrapping and reduce memory allocations.
  • Intermediate Representation Analysis - Provides tools for serializing and analyzing program state at various compilation stages to inspect internal logic.
  • Intermediate Representations - Generates standardized intermediate representations to enable back-end optimizations and translation for diverse hardware architectures.
  • Hardware Targeting - Supports multi-architecture targeting by adapting generated machine code for desktop, mobile, and web platforms.
  • Normalization - Provides structural normalization of functional code constructs into a standardized intermediate format to facilitate downstream compiler optimizations.
  • Propagation - Optimizes branching logic by propagating values directly through conditional expressions to reduce redundant data wrapping.
  • Graph Reduction - Applies graph reduction transformations to intermediate code structures to improve execution efficiency and decrease memory overhead.

Star history

Star history chart for grin-compiler/grinStar history chart for grin-compiler/grin

How this analysis was created: This summary and feature list were written by an AI model that read the project's README and public documentation pages. Each feature links to the documentation it came from; stars, license and language come straight from the GitHub API. The model does not read the source code, and the analysis is refreshed when the project is re-analysed. Learn more on our About page.

AI search

Explore more awesome repositories

Describe what you need in plain English — the AI ranks thousands of curated open-source projects by relevance.

Start searching with AI

Open-source alternatives to Grin

Similar open-source projects, ranked by how many features they share with Grin.
  • clash-lang/clash-compilerclash-lang avatar

    clash-lang/clash-compiler

    1,599View on GitHub↗

    Clash is a functional hardware compiler and hardware description language compiler that translates strongly typed functional programs written in Haskell into synthesizable VHDL, Verilog, and SystemVerilog code. It serves as a development tool allowing digital designers to write hardware descriptions in functional languages and compile them directly to FPGA targets and physical netlists. The compilation infrastructure covers structural hardware compilation, including graph-based code normalization, functional language translation, and netlist generation. It features type-level clock domain saf

    Haskellasicfpgahardware-description-language
    View on GitHub↗1,599
  • gcc-mirror/gccgcc-mirror avatar

    gcc-mirror/gcc

    11,019View on GitHub↗

    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

    C++
    View on GitHub↗11,019
  • frege/fregeFrege avatar

    Frege/frege

    3,700View on GitHub↗

    Frege is a purely functional programming language that compiles to JVM bytecode, providing Haskell-like semantics for the Java platform. It is built around a Haskell-inspired compiler that implements non-strict evaluation and a static type inference system to ensure data immutability and prevent side effects. The project distinguishes itself through a sophisticated type system featuring rank polymorphism, type-class based dispatch, and static purity enforcement. It includes a JVM language bridge and a foreign function interface that map Java classes and interfaces into functional types, allow

    Frege
    View on GitHub↗3,700
  • dotnet/fsharpD

    dotnet/fsharp

    4,308View on GitHub↗

    F# is a strongly typed, functional programming language and compiler for the .NET ecosystem. It transforms functional source code into Common Intermediate Language for execution on the .NET runtime and provides a foundational core library of primitive types and functions. The language emphasizes immutability and uses a static, constraint-based type inference system to automatically determine variable types without requiring explicit user annotations. It also functions as a Language Server Protocol provider, exposing compiler logic through a service-based API to deliver real-time code analysis

    F#
    View on GitHub↗4,308
See all 30 alternatives to Grin→

Frequently asked questions

What does grin-compiler/grin do?

Grin is a compiler infrastructure designed for the translation and optimization of high-level functional languages. It functions as a graph-reduction compiler, transforming source code into a standardized intermediate representation that facilitates whole-program analysis and efficient execution across diverse hardware architectures.

What are the main features of grin-compiler/grin?

The main features of grin-compiler/grin are: Functional Programming Compilers, Compiler Backends, Reduction Transformations, Compiler Intermediate Representations, Graph Compilation, Backend Infrastructure, Binary Size Optimizations, Whole-Program Analysis.

What are some open-source alternatives to grin-compiler/grin?

Open-source alternatives to grin-compiler/grin include: clash-lang/clash-compiler — Clash is a functional hardware compiler and hardware description language compiler that translates strongly typed… gcc-mirror/gcc — This project is a multi-language compiler collection and cross-platform toolchain used to translate source code from… frege/frege — Frege is a purely functional programming language that compiles to JVM bytecode, providing Haskell-like semantics for… dotnet/fsharp — F# is a strongly typed, functional programming language and compiler for the .NET ecosystem. It transforms functional… elm/compiler — This project is a functional programming compiler and JavaScript transpiler that transforms a statically typed… jetbrains/kotlin — Kotlin is a statically typed, general-purpose programming language designed for type safety and concise syntax. It…

Curated searches featuring Grin

Hand-picked collections where Grin appears.
  • Programming Language and Interpreter Construction
  • Programming language parser
  • Programming Languages