← Back home

Alumina

9 May 2025

Every so often I get the urge to understand a tool from the ground up instead of just using it, and for a while that urge pointed at compilers. Alumina is the result: a small hobbyist programming language and compiler, written in Rust, that I've been chipping away at for fun.

The name comes from aluminium oxide, the common natural oxide of aluminium; the project itself borrows that same spirit of being unglamorous but sturdy. It was kicked off after following along with orosmatthew's Hydrogen language series, which is a genuinely great resource if you want to see a compiler built step by step.

The compiler is split into a few focused pieces, a char_reader for lexing source text, a flat_tree structure for representing the parsed program, and the main alumina_compiler crate that ties it together and emits output assembled with nasm and linked with ld. Building it has meant spending a lot of time thinking about how source text turns into something a CPU can actually run, which is exactly the kind of rabbit hole I enjoy.


It's a solo, ongoing project and I'm not taking pull requests on it for now, since half the point is doing the design thinking myself. That said, the repo is public if you want to see how it's put together or follow along as it grows.