compiler-design

Top 18 compiler-design Open-Source Projects

  • oakc

    A portable programming language with a compact intermediate representation

  • xl

    A minimalist, general-purpose programming language based on meta-programming and parse tree rewrites

    Project mention: XL: An Extensible Programming Language | news.ycombinator.com | 2024-02-21

    From what I can read the author got really unlucky with some kind of radical API changes. Maybe at that time the LLVM team was a bit less serious with deprecations ?

    I use LLVM since v9, nowadays I'm stuck on v15 (that's not because of LLVM btw).

    Between the two versions there's been a radical change too, i.e "opaque pointers", but the transition was rather smooth as we were provided, for a long time, the two versions of the functions affected by the change. Maybe the LLVM team got more serious since the author experienced the said difficulties ?

    Other thing I note is that the author uses the CPP API. I use the C one which exposes only a high-level subset of the CPP one. This encourages a saner use of LLVM, a more concrete separation between the front-end and the mid-end, although sometimes there are limitations.

    A simple example of what encourages the C API, especially since opaque ptrs are added, is not to rely on LLVM to retrieve the IR type of an IR value. That should always be done using the AST, eg with an `.ir` field in your nodes.

    Another one I remark, after a brief overview of LLVM-CRAP, is that the author had to change the internal data structure used, depending on the LLVM version [0]. Using the C API that would never had happened. The C API essentially allows to create block refs, instructions refs, value refs, type refs, contexts. Then you choose the containers you want to use to hold them. No need to switch to another stdcpp one, even if internally LLVM does so.

    [0]: https://github.com/c3d/xl/blob/master/src/llvm-crap.cpp#L265

  • InfluxDB

    Power Real-Time Data Analytics at Scale. Get real-time insights from all types of time series data with InfluxDB. Ingest, query, and analyze billions of data points in real-time with unbounded cardinality.

  • honey-potion

    Writing eBPF programs with Elixir!

    Project mention: Honey Potion: an eBPF backend for Elixir | /r/elixir | 2023-05-18

    Hi all! We are working on an eBPF backend for Elixir. It's called Honey Potion. The project is under development, but it is possible to write some useful programs at this point. For instance, in this video, one of the guys involved explains how to write a program to count system calls.

  • LensorCompilerCollection

    A compiler we made just for fun :^)

    Project mention: Looking for some compiler development resources | /r/ProgrammingLanguages | 2023-05-26

    See https://github.com/LensPlaysGames/Intercept/tree/machine_code/docs

  • awesome_computer_science

    The complete syllabus of Computer Science and Engineering. Roadmap, Checklist for Beginners.

    Project mention: Why Students Quit Computer Science: Challenges, Solutions, and the Ideal Candidate | /r/computerscience | 2023-04-03

    And choose any random subject from this list and follow it -> https://github.com/apeman/awesome_computer_science

  • yacv

    Yet Another Compiler Visualizer

  • LLVM-Guide

    LLVM (Low Level Virtual Machine) Guide. Learn all about the compiler infrastructure, which is designed for compile-time, link-time, run-time, and "idle-time" optimization of programs. Originally implemented for C/C++ , though, has a variety of front-ends, including Java, Python, etc.

  • WorkOS

    The modern identity platform for B2B SaaS. The APIs are flexible and easy-to-use, supporting authentication, user identity, and complex enterprise features like SSO and SCIM provisioning.

  • refal-5-lambda

    Компилятор Рефала-5λ

    Project mention: ПП-BESM – a Soviet language (1955) | news.ycombinator.com | 2023-05-21

    There were number of innovative but relatively obscure languages that came out of the first wave of cybernetics. Glushkov, one of Lyapunov's contemporaries who made a number of significant contributions to automata theory, created a language called Analytik [1], with early support for linear algebra and symbolic differentiation. REFAL is another language that emerged from the same era and still under active development [2]. At its foundation is an alternative and surprisingly rich algebraic theory of computation based on so-called word problems [3].

    [1]: https://link.springer.com/content/pdf/10.1007/BF01070461.pdf

    [2]: https://github.com/bmstu-iu9/refal-5-lambda

    [3]: https://en.wikipedia.org/wiki/Word_problem_for_groups

  • regal86

    Register Allocator for 8086

  • language-incubator

    Learning compilers, interpreters, code generation, virtual machines, assemblers, JITs, etc.

  • jet

    A Fast C and Python like Programming Language that puts the Developer first. WIP (by The-NextGen-Project)

  • JuCC

    JuCC - Jadavpur University Compiler Compiler

  • coollang-2020-fs

    Compiler of a small Scala subset

    Project mention: Course using F#: Write your own tiny programming system(s) | news.ycombinator.com | 2023-11-02

    Looks interesting.

    Once I saw it's a Czech university course using F#, I knew Tomáš Petříček would be the lecturer :)

    A couple years back, I wrote a compiler of tiny-ish scala subset in F# (the code is imperative, though)[1]

    [1]: https://github.com/mykolav/coollang-2020-fs

  • semantic-analyzer-rs

    Semantic analyzer library for compilers written in Rust for semantic analysis of programming languages AST

    Project mention: Custom Semantic Analyzer library written Rust lang | news.ycombinator.com | 2023-12-21
  • mewa

    Compiler-compiler for writing compiler frontends with Lua

  • pl_0

    a simple pl/0 compiler implemented in rust.

    Project mention: Show HN: My pl/0 compiler implemented in Rust (for college curruculum design) | news.ycombinator.com | 2023-12-22
  • ShnooTalk

    ShnooTalk is a new programming language

  • trans

    Compiler for a subset of the C programming language. (by rieske)

  • SaaSHub

    SaaSHub - Software Alternatives and Reviews. SaaSHub helps you find the best software and product alternatives

NOTE: The open source projects on this list are ordered by number of github stars. The number of mentions indicates repo mentiontions in the last 12 Months or since we started tracking (Dec 2020). The latest post mention was on 2024-02-21.

compiler-design related posts

Index

What are some of the best open-source compiler-design projects? This list will help you:

Project Stars
1 oakc 708
2 xl 242
3 honey-potion 233
4 LensorCompilerCollection 178
5 awesome_computer_science 169
6 yacv 132
7 LLVM-Guide 100
8 refal-5-lambda 76
9 regal86 71
10 language-incubator 54
11 jet 42
12 JuCC 39
13 coollang-2020-fs 37
14 semantic-analyzer-rs 32
15 mewa 21
16 pl_0 21
17 ShnooTalk 15
18 trans 2
SaaSHub - Software Alternatives and Reviews
SaaSHub helps you find the best software and product alternatives
www.saashub.com