Introduction
Hello, 2025

Hello, 2025

I figured I'd give an update on what I've been up to the last year and a half. For starters, I've gotten pretty serious about photography!

I moved to Charlotte, NC recently and was so inspired by the city I got a decent camera. So far I've been a few places around the state, such as Asheville and Brevard. I also attempt to fish as well.


Here's some of my favorite photos:

img


img

You can see a lot more here!



What's more, over the last 6 months or so I've on-and-off been working on a compiler for the B language. Code generation and intermediate representation has changed quite a lot since I first began to study compiler design. The dragon book has become obsolete as it doesn't cover Static single-assignment form, Sea of nodes, and other modern IRs and methodologies for compiler optimization, made popular by LLVM.

My B language compiler is mostly to catch up to speed, using Engineering A Compiler as a resource. The frontend of the compiler is in Python: I've written dozens of lexers and parsers in many languages and this time wanted to use something easy-to-use. It's called Xion and uses lark for the grammar, and you can check it out here.

The backend is in modern C++, leveraging the pythonic frontend using libpython to interface between the two. The project has made slow but steady progress - check out Roxas here.

At least in the beginning, I'm going to build the backend without LLVM and attempt my own implementation of SSA form, starting with an abstract stack machine IR.



To wrap things up, I have more than a thousand photos that I rotate and post twice a day on my twitter, you should follow and check them out!

Jahan Addison
View Comments
Previous Post

Living document of C++ notes, books