minilustre
A tiny compiler for a subset of Lustre
Minilustre is a tiny compiler that translates a simplified version of the Lustre programming language into machine-readable instructions that can be executed. Think of it as a translator: you write code in a subset of Lustre, and the compiler converts it into a lower-level format called LLVM IR that computers can actually run.
Lustre is an academic language designed for writing programs that need to react to inputs in real time—things like aircraft control systems or industrial automation software where timing is critical. Minilustre supports only a simplified version of the language, so it's easier to understand and build, but it covers the core ideas. The compiler uses a straightforward parsing approach that reads your code from left to right, building up a mental model of what you wrote before converting it down to LLVM IR, which is an intermediate format used by many programming tools.
Someone learning how compilers work might use this project as a teaching example—it's small enough to read and understand end-to-end, but complete enough to do real compilation. A researcher exploring Lustre or reactive programming might use it as a starting point for a larger tool. Because the project is written in Go and only handles a subset of the language, it's not meant to replace full-scale Lustre compilers used in industry, but rather to be an accessible, minimal version that shows how the ideas work.
The README doesn't go into detail about what specific language features are supported or what LLVM IR is, so if you want to use this you'd need to explore the code itself or have some familiarity with those concepts. It's the kind of project that's most useful if you're curious about how programming languages are built from the ground up.