BitZ

From Esolang
Jump to: navigation, search

BitZ BitZ (Brainfuck in the Zeroes) is an esoteric Programming language, developed by J. Cool during the GeoDo-Project. BitZ is like Brainfuck (abb. BF) Turing-complete.

The development's main objectives were,

  • to praise the extraordinary, if at all existing elegancy and efficiency of Brainfuck,
  • to minimize the redundancy of the selection of syntax elements by reducing the presentation to one bit and
  • to provide sufficient flexibility to the software engineer for creating nice graphical code design.

Possible Confusion

BitZ-Programs are occasionally mistaken for B/W-images. This may be attributed to the fact that Brainfuck Memory Psodogquast (BMP) has turned out to be the best container format for BitZ. To save ink, especially electronic ink, here and there 0-bits are presented white or light grey and 1-bits black or darker grey (this is usually homogeneous within a program).

Alternatively BitZ-Programs can be presented as a natural number, most preferably in septendecimals.

Syntax

As well as BF, BitZ has 8 commands, identified by the modulus 8 of the number of 0-bits between two 1-bits.

No. of 0-bits mod 8 BF-equivalent Semantics
0                   >             increment the data pointer (to point to the next cell to the right).
1                   <             decrement the data pointer (to point to the next cell to the left). 
2                   +             increment (increase by one) the byte at the data pointer. 
3                   -             decrement (decrease by one) the byte at the data pointer. 
4                   .             output a character, the ASCII value of which being the byte at the data pointer. 
5                   ,             accept one byte of input, storing its value in the byte at the data pointer. 
6                   [             if the byte at the data pointer is zero, then instead of moving the instruction pointer   
                                  forward to the next command, jump it forward to the command after the matching ] command*. 
7                   ]             if the byte at the data pointer is nonzero, then instead of moving the instruction pointer 
                                  forward to the next command, jump it back to the command after the matching [ command*.

Remark: Programs start with the first and end with the last 1-bit; leading and trailing 0-bits have to be neglected.


Implementations

On the instigation of Microsoft's marketing Microsoft VisualBitZ, to the disappointment of many users was revoked during the conceptual phase. Unconfirmed sources reported that this was done to avoid self-cannibalism with Microsoft VisualBasic and VisualC.

An Objective-BitZ SDE was brought down by the iGod Himself, probably for similar reasons, although in the first place Job stated, that "This concept clearly goes great with our products, it should also be rolled out to hardware. For me an iBitZ is in sight."

The creator's quite ambitious license claims might add to this, may even have been the cause. Steve Jobs: "First of all, we have to check, if we can afford this, well, maybe along with Gate's shop. Think I will give Bill a call."

The GNU BitZ compiler gbc at the moment has come to a critical point, as Julian Assange, who pushed the development under the guise of running some Internet based publication service, on behave of U.S.A. has been kept hold of in the UK. It's not really clear, why NSA and CIA share such a lively interest in sabotage gbc-development. Maybe this has to be seen in the light of those incredible cypher abilities brought to the light of day by BitZ.

Fortunately the implementation of BitZ indeed is trivial und can easily be done by any interested layperson.

First mayor data processing applications and process control have already been installed at König-Brewery in Lower Bavaria, and led to a great success. Vice Pres. Sepp Kühl: "We are very happy with this new software, the concentration of endorphin in our Pilsner even doubled!".

Examples

Hello World!

The following program prints "Hello World! and a carriage return.

(null-extension version, has been corrected)

10010010010010010010010010010010000001100100100100
10010010011001001001001001001001001001001100100100
11001010101010001000000011001001000011001000010010
01001001001001001000010000100100100100001100100100
00101010010010010010010010010010010010010010010010
01000011000010010010010000100010001000100010001000
10000100010001000100010001000100010001000011001000
0110000100100100100001

an even more compact, septendecimal presentation (number has been corrected):

9GF20C54E17D06A4EBEB1BDFBEE6387F7G0E6FE675B9803G02
B93B7FAF6E8401D1D3G4B42A243AD2D7627A3C470

the space-saving BMP-version (JPG shown, BMP on Homepage): BitZ - Hello World null.jpg

and last, not least the graphic BMP-version (JPG shown, BMP on Homepage): BitZ - Hello World!.jpg

99 Bottles

Finally, here it comes: the usual "99 bottles of beer" in bottle design (JPG shown, BMP on Homepage): BitZ - bottle.jpg

External resources

BitZ-Homepage