Krzysztof Szewczyk


Humble origins

Before I start, I'd like to refer you to the brainfuck article I wrote back in September. It might contain useful information. asm2bf started out as a very weird program. I wrote it and didn't really know what to do with it, so I've published it quite early, around 2016. My audience didn't understand the program ( hey, that's some cool ASCII art generator! +>+[), neither it's style (we will get to that later). I've done a major mistake at that time. asm2bf was lying around in the Esoteric repository (and, technically speaking, it still is, because for historical purposes it's still stored in the old-fashioned way here). I didn't bother writing any documentation really, so it was just lying alone with anyone besides me and God knowing it's inner workings.

Huge improvement

I became interested in actually using asm2bf around late 2017. I've forked into a distinct repository and began gluing things together. I wrote the documentation how I understood the brainfuck code (had no idea about the actual code shape). Obviously I've missed a whole lot of properties, but with time flowing I've learnt the inner workings of my program (ironic). Instead of repeating this process over and over again, I've dumped in a brainfuck interpreter together with the compiler, debugging version and some other stuff.

The compiler still had some bugs that haven't been fixed, so I just kept on adjourning to fix them or I've fixed them the poor man's way (I didn't really know how the entire compiling part of that program worked, the reason is quite obvious but we will get to that in a moment).

Even before refurbishing the asm2bf, I've written a self compiler (thats right, a self compiler!). The main source code for asm2bf was really obfuscated, and the reason for that was the overall simplification of a C subset to eaisly bootstrap the compiler. The original code was lost and my updates have been done brainlessly so after a year I felt like reading hieroglyphs.

Now, I have returned to making updates to asm2bf. I've added a few instructions (namely, log, srv, asl, asr and pow), a few improvements have been added, and some other stuff has been tweaked. More documentation, more tools, more everything.

asm2bf and me

I'm not going to ever drop it. It's a really, really cool project. Probably, I could port it onto some other platforms (I thought about Malbolge, but we will see should it work). The work is currently in progress. I'm dissipating my time on floating point arithmetic and generic standard library. I can't yet tell the result of this, but clearly it's going to be measurable.