Some 0x29A resources

What is 0x29A?

0x29A is an esoteric programming language, invented by David Lewis in 2004. It is located somewhere between imperative and functional programming languages. Its author calls the paradigm "dysfunctional programming".

Is this language usable?

When trying to do anything in 0x29A I had problems creating a function that increments the register by two. Because I overlooked the only way of using the s combinator correctly in this language, I googled for somebody else having done such a thing. I found the 0x29A page on the esolang wiki, in the version 17. November 2005. It claimed that the language is turing complete, but had no information to back up the claim, so I went to the #esoteric IRC channel an freenode and asked there. I had a discussion with a user called oerjan, during which I found my omission in the supposed-to-be exhautive search of possibilities to create a +2 function. After finding out that it works, we nearly independently developed the same ideas for translating brainfuck to 0x29A, which turned out to work quite well, except for the drawback of having O(N) for the < and > commands, where N is the value of the cells. As values are limited to 255, this is just a bad constant factor.

How to translate brainfuck to 0x29A.

This is explained in a hopefully understandable way in the translators source code

And how to test it.

As I don't trust anything I think of myself, I started my experiments with 0x29A writing an 0x29A interpreter which was kindly left as an exercise by the specification. Get my 0x29A interpreter in Haskell 98 with MPTC (uses StateT form Control.Monad.State). It is tested with hugs and ghc 6.6.

Valid HTML 4.01 Strict