BIO

BIO (Binary IO) is an esoteric programming language designed by Emil Svensson (:User:fr34k) in 2008. BIO was inspired by ABCDXYZ by ais523
==Overview==
BIO works using 3 memory blocks (known as x, y and z). Each of the blocks are at start set to 0. BIO understands two letters (I and O) and two numbers (1 and 0), which combined, creates various commands. Due to the limited amount of memory blocks, one must use a function for resetting the blocks in order to continue with his or her calculations etc.
==Commands==
The language is not case-sensitive, meaning that a command can look like this: 1O or this; 1o
 	0 	1
O 	Increment the specified block	Decrement the specified block
I 	While the block is not 0 	Output the block
Note that the command 0i, is built up like this: 0i{ do something };
Every command is ended by a ';'.
==Examples==
===Hello, world!===
 0ox; //Increment the block x by 1 9 times
 0ox;
 0ox;
 0ox;
 0ox;
 0ox;
 0ox;
 0ox;
 0ox;
 0ix{ //While block x is not 0
 0oy; //Increment the block y by 1 8 times
 0oy;
 0oy;
 0oy;
 0oy;
 0oy;
 0oy;
 0oy;
 1ox; //Decrement block x by 1
 };
 1iy; //Output block y (H)
 0iy{ //Reset block y to 0
 1oy;
 };
 0ox;
 0ox;
 0ox;
 0ox;
 0ox;
 0ox;
 0ox;
 0ox;
 0ox;
 0ox;
 0ix{
 0oy;
 0oy;
 0oy;
 0oy;
 0oy;
 0oy;
 0oy;
 0oy;
 0oy;
 0oy;
 1ox;
 };
 0oy;
 1iy; //Output block y (e)
 0iy{
 1oy;
 };
 0ox;
 0ox;
 0ox;
 0ox;
 0ox;
 0ox;
 0ox;
 0ox;
 0ox;
 0ix{
 0oy;
 0oy;
 0oy;
 0oy;
 0oy;
 0oy;
 0oy;
 0oy;
 0oy;
 0oy;
 0oy;
 0oy;
 1ox;
 };
 1iy; //Output block y (l)
 1iy; //Output block y again
 0iy{
 1oy;
 };
 0ox;
 0ox;
 0ox;
 0ox;
 0ox;
 0ox;
 0ox;
 0ox;
 0ox;
 0ox;
 0ix{
 0oy;
 0oy;
 0oy;
 0oy;
 0oy;
 0oy;
 0oy;
 0oy;
 0oy;
 0oy;
 0oy;
 1ox;
 };
 0oy;
 1iy; //Output block y (o)
 0iy{
 1oy;
 };
 0ox;
 0ox;
 0ox;
 0ox;
 0ix{
 0oy;
 0oy;
 0oy;
 0oy;
 0oy;
 0oy;
 0oy;
 0oy;
 1ox;
 };
 1iy; //Output block y (space)
 0iy{
 1oy;
 };
 0ox;
 0ox;
 0ox;
 0ox;
 0ox;
 0ox;
 0ox;
 0ox;
 0ix{
 0oy;
 0oy;
 0oy;
 0oy;
 0oy;
 0oy;
 0oy;
 0oy;
 0oy;
 0oy;
 0oy;
 1ox;
 };
 1oy;
 1iy; //Output block y (W)
 0iy{
 1oy;
 };
 0ox;
 0ox;
 0ox;
 0ox;
 0ox;
 0ox;
 0ox;
 0ox;
 0ox;
 0ox;
 0ix{
 0oy;
 0oy;
 0oy;
 0oy;
 0oy;
 0oy;
 0oy;
 0oy;
 0oy;
 0oy;
 0oy;
 1ox;
 };
 0oy;
 1iy; //Output block y (o)
 0iy{
 1oy;
 };
 0ox;
 0ox;
 0ox;
 0ox;
 0ox;
 0ox;
 0ox;
 0ox;
 0ix{
 0oy;
 0oy;
 0oy;
 0oy;
 0oy;
 0oy;
 0oy;
 0oy;
 0oy;
 0oy;
 0oy;
 0oy;
 0oy;
 0oy;
 1ox;
 };
 0oy;
 0oy;
 1iy; //Output block y (r)
 0iy{
 1oy;
 };
 0ox;
 0ox;
 0ox;
 0ox;
 0ox;
 0ox;
 0ox;
 0ox;
 0ox;
 0ix{
 0oy;
 0oy;
 0oy;
 0oy;
 0oy;
 0oy;
 0oy;
 0oy;
 0oy;
 0oy;
 0oy;
 0oy;
 1ox;
 };
 1iy; //Output block y (l)
 0iy{
 1oy;
 };
 0ox;
 0ox;
 0ox;
 0ox;
 0ox;
 0ox;
 0ox;
 0ox;
 0ox;
 0ox;
 0ix{
 0oy;
 0oy;
 0oy;
 0oy;
 0oy;
 0oy;
 0oy;
 0oy;
 0oy;
 0oy;
 1ox;
 };
 1iy; //Output block y (d)
 0iy{
 1oy;
 };
 0ox;
 0ox;
 0ox;
 0ox;
 0ix{
 0oy;
 0oy;
 0oy;
 0oy;
 0oy;
 0oy;
 0oy;
 0oy;
 1ox;
 };
 0oy;
 1iy; //Output block y (!)
 0iy{
 1oy;
 };
This program outputs
 Hello World!
(This program was a pain to code, so if you find any errors feel free to correct them, since I don't have any debugger)
===Mathematics===
Addition
 0ox; 0oy;
 0ix{ 1ox; 0oy; };
 1iy;
Subtraction
 0ox; 0ox; 0oy;
 0iy{ 0ox; 1oy; };
 1ix;
Multiplication
 0ox; 0ox; 0ox; 0ox; 0ox;
 0ix{ 1ox; 0oy; 0oy; 0oy; 0oy; 0oy; };
 1iy;
===99 Bottles of Beer===
Too long to post :P Commented or Not
Click here to see source-code
==Implementations==
===BIO to Skull written in Thutu===
(this implementation is not tested yet)
 /=1/:ASC:=n=x/
 /\/\/.*$//
 /=;//
 /0[Oo][Xx]/={0=[=+1=]%/
 /1[Oo][Xx]/={0=[=-1=]%/
 /0[Oo][Yy]/={1=[=+1=]%/
 /1[Oo][Yy]/={1=[=-1=]%/
 /0[Oo][Zz]/={2=[=+1=]%/
 /1[Oo][Zz]/={2=[=-1=]%/
 /0[Ii][Xx]/={0/
 /0[Ii][Yy]/={1/
 /0[Ii][Zz]/={2/
 /1[Ii][Xx]/=|0=|/
 /1[Ii][Yy]/=|1=|/
 /1[Ii][Zz]/=|1=|/
 /=}/%%/
 /=n/=9/!
 /=x/=n=x/
 .
 /%/@
 /%/=}/
 .
Implementation written by ais523
=== Python ===
Python interpreter by User:Bangyen.
Category:2008
Category:Implemented
Category:Languages
Category:Output only