Hello World Application in Brainfuck.

Hello, World Application in Brainfuck.

Note: - View as Desktop Version On Mobiles.

It is time to write the first application in Brainfuck.

Problem: Print numbers from 0 to 9.

Approach 1
Let me start with the naïve approach.

By default, all the array cells are initialized with 0.
0
0
0
0
0
0
0
0
0
0

The final output should be as below.
0
1
2
3
4
5
6
7
8
9

As per ASCII table, decimal number 48 represents 0, 49 represent 1 etc.,

Number
ASCII equivalent
0
48
1
49
2
50
3
51
4
52
5
53
6
54
7
55
8
56
9
57

To get the output, we should fill the 0th cell with 48, 1st cell with 49, 2nd cell with 50, etc.,

‘+’ command is used to increment the value of the cell by 1.
‘.’ It is used to print the value at the current cell.
‘>’ command is used to move the data pointer to once cell right.

48 +’s make the cell value to 48. After that, we can print the value and move to the next cell. Do 49 +’s to make the cell value to 49, next print the value and move to the next cell, repeat this procedure for next 8 times.


Find the below working application.

++++++++++++++++++++++++++++++++++++++++++++++++
.
>
+++++++++++++++++++++++++++++++++++++++++++++++++
.
>
++++++++++++++++++++++++++++++++++++++++++++++++++
.
>
+++++++++++++++++++++++++++++++++++++++++++++++++++
.
>
++++++++++++++++++++++++++++++++++++++++++++++++++++
.
>
+++++++++++++++++++++++++++++++++++++++++++++++++++++
.
>
++++++++++++++++++++++++++++++++++++++++++++++++++++++
.
>
+++++++++++++++++++++++++++++++++++++++++++++++++++++++
.
>
++++++++++++++++++++++++++++++++++++++++++++++++++++++++
.
>
+++++++++++++++++++++++++++++++++++++++++++++++++++++++++
.

Output
0123456789

To print the values from 0 to 9, we should fill the cells like below.

48
49
50
51
52
53
54
55
56
57

We can perform the operation using looping.


Step 1: First let us initialize the counter (first cell) to 10.

++++++++++’ initialize first cell to 10.

Step 2: By using the loop [], fill all the cell values to 50.

[
  > +++++                   Fill each cell with 5
  > +++++
  > +++++
  > +++++
  > +++++
  > +++++
  > +++++
  > +++++
  > +++++
  > +++++

  <<<<<<<<<< -               Move the data pointer to 0th cell
]

After this step, the array looks like below.
50
50
50
50
50
50
50
50
50
50

Step 3: We need to convert the above table to print 0 to 9. The first cell has value 50, we should decrement by 2 to make it 48.

Apply the same procedure for all other cells.


Find the below working application.

++++++++++                   initialize counter (cell #0) to 10
[
  > +++++                   Fill each cell with 5
  > +++++
  > +++++
  > +++++
  > +++++
  > +++++
  > +++++
  > +++++
  > +++++
  > +++++

  <<<<<<<<<< -               Move the data pointer to 0th cell
]

All the cells has value 50

>  --
.

> -
.

>
.

> +
.

> ++
.

> +++
.

> ++++
.

> +++++
.

> ++++++
.

> +++++++
.

Output

0123456789

Comments