January 31, 2010

awib up until 0.1

During the spring of 2002, members of what would later become the awib development team started hacking on a brainfuck to C translator. Since converting brainfuck to C is trivial and a non-trivial task was desired, the compiler was named wib and was to be written in brainfuck. Interested readers can fetch a copy of wib-0.96 here:
http://www.nada.kth.se/~matslina/awib/wib.b

A year or so later, wib was old news and a fresh challenge was needed. The team started working on a brainfuck compiler for Linux (on IA32). In the tradition of wib, the compiler, named awib, was also written in brainfuck.

The first public release hit the intertubes in early 2004. This first version, while fairly rudimentary, was capable of compiling brainfuck source code into executable ELF binaries. Over the remainder of the year, 3 additional releases were made available. While the first and third of these primarily fixed bugs, the second introduced a form of code optimization. Implementing this feature was a painstaking task and it became evident that major refactoring was needed. Development ground to a halt and it wasn't until three years later that the project was picked up again.

During the summer and fall of 2007, awib was rewritten from scratch. The end result featured improved code optimization and was capable of compiling both to Linux executables and to C code. Much time was invested in making the new code base modular and readable. It should be mentioned that a large part of this was done as a project at the Royal Institute of Technology in Stockholm (project report.)

A priority during the 2007 refactoring was to prepare awib for release as a FOSS project. Since uncommented and raw brainfuck source code is nearly incomprehensible, few programmers would ever be able to contribute to awib. Most of the work done in 2008 served to structure, comment and document the source tree. This culminated in the November 2008 release of awib 0.1 with the full source tree publicly hosted on Google Code.

Awib 0.2 is scheduled for release during the spring of 2010. Stay tuned!

No comments:

Post a Comment