TomRay's success at evolving computer programs inspired the creation of Biota, a language and interpreter with a two-dimensional memory model and adjacency as its only addressing mode.
Here is a sample Biota program, called flagellum, which incrementally rotates a series of digits, 1 to 5, such that the 5 remains connected to the 1 by the intervening digits and travels around the 5 in an approximation of a circle that completes after 1688 instructions:
. . c . . . s . . initial program counter t g / (facing right) t t / initial data counter t . t . . d / (facing right) t s . . / b . b . s s . 1 2 3 4 5 . s s . b . b . . s t u d t t t t t t g t . . s . . . c . .Many instructions just move the data counter (DC)
Biota was packaged and sold publicly online in 1991. This disclosure predates BefungeLanguage by several years. The Smalltalk source code for Biota has been located along with the release notes for the package. -- WardCunningham
I've had success with an implementation of SnuspLanguage in JavaScript on a web page. I think I've got a working implementation (a rotating flagella) on http://www.quirkster.com/js/biota.html. Tested on Safari and IE. A more object-oriented implementation in on biota-proto.html. -- IanOsgood
Yes, this is a faithful reimplementation of Biota. What a thrill it was to see flagellum run again. I hope you felt some of the excitement I did when I got such a small and unusual program to do such an unusual activity as rotating a string of characters in place. I encourage others to give it a try. (Try reloading the page if you think initial conditions might not be right.) -- WardCunningham
Regarding ArtificialLife, I agree with Tom that the removal of embedded addresses in the instruction stream is the primary means to improve robustness under mutation. I disagree that a single dimension is the natural environment for evolving programs. I take my inspiration from membranes. I must admit, however, that I have yet to construct or evolve a self-duplicating program in Biota, so I am in no position to criticise his work. -- WardCunningham