The Blæst Programming Language

Blæst sought to be a modern compiler for the B Programming Language, the language which laid the groundwork for what would become C. It featured a JIT compiler which would compile to bytecode before running through a virtual machine to execute programs.

Blæst was my first compiler project and it really shows. I wrote it long before I had much of any knowledge on how compilers work except in broad strokes. Because of this, Blæst is missing many core components of a compiler. Blæst does not have a lexer, instead the parser directly does string comparisons. The parser also does not have lookahead at all, instead relying on a bunch of hacky control flags which are passed around the over 1,000 line recursive descent parsing function. It goes without saying that you probably shouldn't use Blæst :).

With all that being said, why would I bother making a webpage for this project that I almost immediatley have to defend myself for making. Well, because I'm still super proud of it. Even though it isn't a good compiler by any means, and it also probably will only make me look bad, I love it. Because of that, I have been more drawn to rewriting Blæst than any other old project I have. Being someone who now does programming language and compiler research, I feel like now is the perfect time to actually give Blæst the time in the sun I always wanted it to have.

To pull a Wikipedia, this article is a stub. I'll probably get around to adding more when I actually start rewriting Blæst, or finally lay it to rest.


Collin McKinley - cmckinley.org [email] [pgp]
This page was last modified: Dec 12, 2025