<?xml version='1.0' encoding='UTF-8'?><?xml-stylesheet href="http://www.blogger.com/styles/atom.css" type="text/css"?><feed xmlns='http://www.w3.org/2005/Atom' xmlns:openSearch='http://a9.com/-/spec/opensearchrss/1.0/' xmlns:georss='http://www.georss.org/georss' xmlns:gd='http://schemas.google.com/g/2005' xmlns:thr='http://purl.org/syndication/thread/1.0'><id>tag:blogger.com,1999:blog-1720637894693735625</id><updated>2012-02-17T04:29:05.884+01:00</updated><title type='text'>awib's written in brainfuck</title><subtitle type='html'>a brainfuck compiler written in brainfuck</subtitle><link rel='http://schemas.google.com/g/2005#feed' type='application/atom+xml' href='http://awibiswritteninbrainfuck.blogspot.com/feeds/posts/default'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1720637894693735625/posts/default?max-results=100'/><link rel='alternate' type='text/html' href='http://awibiswritteninbrainfuck.blogspot.com/'/><link rel='hub' href='http://pubsubhubbub.appspot.com/'/><author><name>Mats Linander</name><uri>http://www.blogger.com/profile/01895576747640754505</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://3.bp.blogspot.com/-U_xuPxXh4YE/TqgIT1tlyrI/AAAAAAAAAcE/7ZJVTswJ3SU/s220/180.jpg'/></author><generator version='7.00' uri='http://www.blogger.com'>Blogger</generator><openSearch:totalResults>3</openSearch:totalResults><openSearch:startIndex>1</openSearch:startIndex><openSearch:itemsPerPage>100</openSearch:itemsPerPage><entry><id>tag:blogger.com,1999:blog-1720637894693735625.post-6599323089725143402</id><published>2010-10-04T15:00:00.000+02:00</published><updated>2010-10-04T15:00:13.290+02:00</updated><title type='text'>Tickling an itch: announcing awib 0.3</title><content type='html'>&lt;p&gt;In April 2010, awib 0.2 hit the internet like a pile of bricks dropped from the 42nd floor. Few had expected such radical expansion of an already impressive feature set. Not only was Ruby and Google's Go added to the list of compilation targets, the compiler itself had been made polyglot in C and bash in addition to it's core language brainfuck. Still, we felt that something was missing.&lt;/p&gt;&lt;p&gt;It has been said that "&lt;i&gt;every good work of software starts by scratching a developer's personal itch&lt;/i&gt;" [&lt;a href="http://catb.org/esr/writings/cathedral-bazaar/cathedral-bazaar/ar01s02.html"&gt;1&lt;/a&gt;]. It has also been said that "&lt;i&gt;Tcl was not designed to be a serious programming language&lt;/i&gt;" [&lt;a href="http://www.vanderburg.org/OldPages/Tcl/war/0000.html"&gt;2&lt;/a&gt;]. With that in mind, and for no particular reason, we, the awib development team have decided to embrace the Tool Command Language, Tcl, as a central part of our endeavour.&lt;/p&gt;&lt;h2&gt;the news&lt;/h2&gt;&lt;p&gt;Awib 0.3, hereby announced, introduces:&lt;ul&gt;&lt;li&gt;Polyglotness in Tcl&lt;/li&gt;&lt;li&gt;A Tcl backend&lt;/li&gt;&lt;/ul&gt;&lt;/p&gt;&lt;p&gt;In summary, awib 0.3 is:&lt;ul&gt;&lt;li&gt;a brainfuck compiler written in brainfuck&lt;/li&gt;&lt;li&gt;polyglot in Tcl, C, bash and brainfuck&lt;/li&gt;&lt;li&gt;optimizing&lt;/li&gt;&lt;li&gt;capable of compiling to&lt;ul&gt;&lt;li&gt;Linux executables (for i386)&lt;/li&gt;    &lt;li&gt;Tcl&lt;/li&gt;    &lt;li&gt;Ruby&lt;/li&gt;    &lt;li&gt;Go&lt;/li&gt;    &lt;li&gt;C&lt;/li&gt;&lt;/ul&gt;&lt;/li&gt;&lt;/ul&gt;&lt;/p&gt;&lt;h2&gt;getting it&lt;/h2&gt;&lt;p&gt;&lt;ul&gt;&lt;li&gt;Latest build: &lt;a href="http://awib.googlecode.com/svn/builds/awib-0.3.b"&gt;awib-0.3.b&lt;/a&gt;&lt;/li&gt;&lt;li&gt;Full source tar-ball: &lt;a href="http://awib.googlecode.com/svn/builds/awib-0.3.b"&gt;awib-0.3.tar.gz&lt;/a&gt;&lt;/li&gt;&lt;/ul&gt;&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1720637894693735625-6599323089725143402?l=awibiswritteninbrainfuck.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://awibiswritteninbrainfuck.blogspot.com/feeds/6599323089725143402/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://awibiswritteninbrainfuck.blogspot.com/2010/10/tickling-itch-announcing-awib-03.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1720637894693735625/posts/default/6599323089725143402'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1720637894693735625/posts/default/6599323089725143402'/><link rel='alternate' type='text/html' href='http://awibiswritteninbrainfuck.blogspot.com/2010/10/tickling-itch-announcing-awib-03.html' title='Tickling an itch: announcing awib 0.3'/><author><name>Mats Linander</name><uri>http://www.blogger.com/profile/01895576747640754505</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://3.bp.blogspot.com/-U_xuPxXh4YE/TqgIT1tlyrI/AAAAAAAAAcE/7ZJVTswJ3SU/s220/180.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1720637894693735625.post-481043069313151759</id><published>2010-04-23T00:56:00.002+02:00</published><updated>2010-04-23T00:58:38.760+02:00</updated><title type='text'>announcing awib 0.2</title><content type='html'>&lt;div&gt;&lt;p&gt;It may well be the best brainfuck compiler ever written in brainfuck. Today it gets even better.&lt;/p&gt;&lt;p&gt;We've been at it for more than a year and are finally able to announce the release of &lt;a href="http://awib.googlecode.com/svn/builds/awib-0.2.b"&gt;awib 0.2&lt;/a&gt;.&lt;/p&gt;&lt;p&gt;In addition to an already impressive feature set, boasting code optimization and support for multiple target platforms, awib 0.2 has many exciting new bells and whistles that you're bound to enjoy.&lt;/p&gt;&lt;h2&gt;it's a polyglot!&lt;/h2&gt;&lt;p&gt;The classic problem for self-hosting compilers is that of bootstrapping: with what will you compile the compiler?&lt;/p&gt;&lt;p&gt;Since it is arguably one of the largest hurdles standing in the way of widespread adoption, the awib development team has decided to attack this problem by making version 0.2 a three language polyglot. As of now, awib.b is not only valid brainfuck code, but is also a fully functional C program and a bash script. You can run it in your shell, you can build it with your C compiler and you can execute it in your brainfuck environment of choice.&lt;/p&gt;&lt;p&gt;Building awib-0.2.b with gcc is very simple:&lt;pre&gt;$ cp awib-0.2.b awib.c&lt;br /&gt;$ gcc awib.c -o awib.tmp&lt;br /&gt;$ ./awib.tmp &amp;lt; awib-0.2.b &amp;gt; awib.c&lt;br /&gt;$ gcc -O2 awib.c -o awib-0.2&lt;br /&gt;&lt;/pre&gt;&lt;/p&gt;&lt;p&gt;Users without access to a C compiler can use bash instead:&lt;pre&gt;$ (echo "@386_linux"; cat awib-0.2.b) | bash awib-0.2.b &amp;gt awib-0.2&lt;br /&gt;$ chmod +x awib-0.2&lt;br /&gt;&lt;/pre&gt;&lt;/p&gt;&lt;p&gt;Obviously, since awib 0.2 is still valid brainfuck, it can also be compiled with older versions of awib:&lt;pre&gt;&lt;br /&gt;$ (echo "@386_linux"; cat awib-0.2.b) | awib-0.1 &gt; awib-0.2&lt;br /&gt;$ chmod +x awib-0.2&lt;br /&gt;&lt;/pre&gt;&lt;/p&gt;&lt;h2&gt;go ruby&lt;/h2&gt;&lt;p&gt;As if the C programming language and 386 Linux binaries was not enough, we've added two new compiler backends. In addition to the before mentioned, awib is now capable of compiling to &lt;a href="http://www.ruby-lang.org/en/"&gt;Ruby&lt;/a&gt; and Google's sort of interesting new language &lt;a href="http://golang.org/"&gt;Go&lt;/a&gt;.&lt;/p&gt;&lt;p&gt;To compile to Ruby, prepend the string "@lang_ruby" to the brainfuck source code you wish to  compile. If you're going for Go, prepend the string "@lang_go". In case you've forgotten, the other two backends are selected with "@lang_c" and "@386_linux" respectively.&lt;/p&gt;&lt;h2&gt;testing&lt;/h2&gt;&lt;p&gt;Diving into the awib code base can be a daunting task. Many potential contributors are probably scared off by the difficulty in comprehending the consequences of even minor edits for the compiler as a whole.&lt;/p&gt;&lt;p&gt;With this and some other stuff in mind, we've added tests. Lot's of them. Unit tests for the backends. Unit tests for the frontend. System tests for the final build. Some of them take forever to run but we run them nonetheless.&lt;/p&gt;&lt;p&gt;In addition to hopefully making the code less off putting to other developers, the expanded test coverage has helped us to iron out a couple of nasty bugs and greatly improves our confidence in the correctness of awib 0.2.&lt;/p&gt;&lt;h2&gt;getting it&lt;/h2&gt;&lt;p&gt;We have what you want:&lt;ul&gt;&lt;li&gt;Latest build: &lt;a href="http://awib.googlecode.com/svn/builds/awib-0.2.b"&gt;awib-0.2.b&lt;/a&gt;&lt;/li&gt;&lt;li&gt;Full source tar ball: &lt;a href="http://awib.googlecode.com/files/awib-0.2.tar.gz"&gt;awib-0.2.tar.gz&lt;/a&gt;&lt;/li&gt;&lt;/ul&gt;&lt;/p&gt;&lt;p&gt;Don't forget to visit the awib project page at Google Code: &lt;a href="http://awib.googlecode.com/"&gt;http://awib.googlecode.com/&lt;/a&gt;.&lt;/p&gt;&lt;p&gt;Enjoy!&lt;/p&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1720637894693735625-481043069313151759?l=awibiswritteninbrainfuck.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://awibiswritteninbrainfuck.blogspot.com/feeds/481043069313151759/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://awibiswritteninbrainfuck.blogspot.com/2010/04/announcing-awib-02.html#comment-form' title='3 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1720637894693735625/posts/default/481043069313151759'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1720637894693735625/posts/default/481043069313151759'/><link rel='alternate' type='text/html' href='http://awibiswritteninbrainfuck.blogspot.com/2010/04/announcing-awib-02.html' title='announcing awib 0.2'/><author><name>Mats Linander</name><uri>http://www.blogger.com/profile/01895576747640754505</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://3.bp.blogspot.com/-U_xuPxXh4YE/TqgIT1tlyrI/AAAAAAAAAcE/7ZJVTswJ3SU/s220/180.jpg'/></author><thr:total>3</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1720637894693735625.post-5112940358695317080</id><published>2010-01-31T14:02:00.000+01:00</published><updated>2010-01-31T14:02:29.665+01:00</updated><title type='text'>awib up until 0.1</title><content type='html'>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 &lt;i&gt;wib&lt;/i&gt; and was to be written in brainfuck. Interested readers can fetch a copy of wib-0.96 here:&lt;br /&gt;&lt;a href="http://www.nada.kth.se/%7Ematslina/awib/wib.b"&gt;http://www.nada.kth.se/~matslina/awib/wib.b&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;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 &lt;i&gt;awib&lt;/i&gt;, was also written in brainfuck.&lt;br /&gt;&lt;br /&gt;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&amp;nbsp;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.&lt;br /&gt;&lt;br /&gt;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 (&lt;a href="http://www.nada.kth.se/kurser/kth/2D1464/awib.pdf"&gt;project report&lt;/a&gt;.)&lt;br /&gt;&lt;br /&gt;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 &lt;a href="http://awib.googlecode.com/svn/builds/awib-0.1.b"&gt;awib 0.1&lt;/a&gt; with the &lt;a href="http://awib.googlecode.com/files/awib-0.1.tar.gz"&gt;full source tree&lt;/a&gt; publicly hosted on Google Code.&lt;br /&gt;&lt;br /&gt;Awib 0.2 is scheduled for release during the spring of 2010. Stay tuned!&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1720637894693735625-5112940358695317080?l=awibiswritteninbrainfuck.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://awibiswritteninbrainfuck.blogspot.com/feeds/5112940358695317080/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://awibiswritteninbrainfuck.blogspot.com/2010/01/awib-up-until-01.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1720637894693735625/posts/default/5112940358695317080'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1720637894693735625/posts/default/5112940358695317080'/><link rel='alternate' type='text/html' href='http://awibiswritteninbrainfuck.blogspot.com/2010/01/awib-up-until-01.html' title='awib up until 0.1'/><author><name>Mats Linander</name><uri>http://www.blogger.com/profile/01895576747640754505</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://3.bp.blogspot.com/-U_xuPxXh4YE/TqgIT1tlyrI/AAAAAAAAAcE/7ZJVTswJ3SU/s220/180.jpg'/></author><thr:total>0</thr:total></entry></feed>
