|
| 1 | +[ This program prints "Hello World!" and a newline to the screen; its |
| 2 | + length is 106 active command characters. [It is not the shortest.] |
| 3 | +
|
| 4 | + This loop is an "initial comment loop", a simple way of adding a comment |
| 5 | + to a BF program such that you don't have to worry about any command |
| 6 | + characters. Any ".", ",", "+", "-", "<" and ">" characters are simply |
| 7 | + ignored, the "[" and "]" characters just have to be balanced. This |
| 8 | + loop and the commands it contains are ignored because the current cell |
| 9 | + defaults to a value of 0; the 0 value causes this loop to be skipped. |
| 10 | +] |
| 11 | +++++++++ Set Cell #0 to 8 |
| 12 | +[ |
| 13 | + >++++ Add 4 to Cell #1; this will always set Cell #1 to 4 |
| 14 | + [ as the cell will be cleared by the loop |
| 15 | + >++ Add 2 to Cell #2 |
| 16 | + >+++ Add 3 to Cell #3 |
| 17 | + >+++ Add 3 to Cell #4 |
| 18 | + >+ Add 1 to Cell #5 |
| 19 | + <<<<- Decrement the loop counter in Cell #1 |
| 20 | + ] Loop until Cell #1 is zero; number of iterations is 4 |
| 21 | + >+ Add 1 to Cell #2 |
| 22 | + >+ Add 1 to Cell #3 |
| 23 | + >- Subtract 1 from Cell #4 |
| 24 | + >>+ Add 1 to Cell #6 |
| 25 | + [<] Move back to the first zero cell you find; this will |
| 26 | + be Cell #1 which was cleared by the previous loop |
| 27 | + <- Decrement the loop Counter in Cell #0 |
| 28 | +] Loop until Cell #0 is zero; number of iterations is 8 |
| 29 | +
|
| 30 | +The result of this is: |
| 31 | +Cell no : 0 1 2 3 4 5 6 |
| 32 | +Contents: 0 0 72 104 88 32 8 |
| 33 | +Pointer : ^ |
| 34 | +
|
| 35 | +>>. Cell #2 has value 72 which is 'H' |
| 36 | +>---. Subtract 3 from Cell #3 to get 101 which is 'e' |
| 37 | ++++++++..+++. Likewise for 'llo' from Cell #3 |
| 38 | +>>. Cell #5 is 32 for the space |
| 39 | +<-. Subtract 1 from Cell #4 for 87 to give a 'W' |
| 40 | +<. Cell #3 was set to 'o' from the end of 'Hello' |
| 41 | ++++.------.--------. Cell #3 for 'rl' and 'd' |
| 42 | +>>+. Add 1 to Cell #5 gives us an exclamation point |
| 43 | +>++. And finally a newline from Cell #6 |
0 commit comments