diff options
Diffstat (limited to 'examples/hello-world.bf')
-rw-r--r-- | examples/hello-world.bf | 45 |
1 files changed, 45 insertions, 0 deletions
diff --git a/examples/hello-world.bf b/examples/hello-world.bf new file mode 100644 index 0000000..dce24e2 --- /dev/null +++ b/examples/hello-world.bf | |||
@@ -0,0 +1,45 @@ | |||
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 | from https://en.wikipedia.org/wiki/Brainfuck#Hello_World! | ||
12 | ] | ||
13 | ++++++++ Set Cell #0 to 8 | ||
14 | [ | ||
15 | >++++ Add 4 to Cell #1; this will always set Cell #1 to 4 | ||
16 | [ as the cell will be cleared by the loop | ||
17 | >++ Add 2 to Cell #2 | ||
18 | >+++ Add 3 to Cell #3 | ||
19 | >+++ Add 3 to Cell #4 | ||
20 | >+ Add 1 to Cell #5 | ||
21 | <<<<- Decrement the loop counter in Cell #1 | ||
22 | ] Loop until Cell #1 is zero; number of iterations is 4 | ||
23 | >+ Add 1 to Cell #2 | ||
24 | >+ Add 1 to Cell #3 | ||
25 | >- Subtract 1 from Cell #4 | ||
26 | >>+ Add 1 to Cell #6 | ||
27 | [<] Move back to the first zero cell you find; this will | ||
28 | be Cell #1 which was cleared by the previous loop | ||
29 | <- Decrement the loop Counter in Cell #0 | ||
30 | ] Loop until Cell #0 is zero; number of iterations is 8 | ||
31 | |||
32 | The result of this is: | ||
33 | Cell no : 0 1 2 3 4 5 6 | ||
34 | Contents: 0 0 72 104 88 32 8 | ||
35 | Pointer : ^ | ||
36 | |||
37 | >>. Cell #2 has value 72 which is 'H' | ||
38 | >---. Subtract 3 from Cell #3 to get 101 which is 'e' | ||
39 | +++++++..+++. Likewise for 'llo' from Cell #3 | ||
40 | >>. Cell #5 is 32 for the space | ||
41 | <-. Subtract 1 from Cell #4 for 87 to give a 'W' | ||
42 | <. Cell #3 was set to 'o' from the end of 'Hello' | ||
43 | +++.------.--------. Cell #3 for 'rl' and 'd' | ||
44 | >>+. Add 1 to Cell #5 gives us an exclamation point | ||
45 | >++. And finally a newline from Cell #6 | ||