How to Program in Brainf**K

Brainfuck (commonly written as brainf**k to avoid swearing) is an esoteric programming language. It only has 8 instructions, so programs in brainf**k tend to be a bit long. However, each instruction is pretty easy to understand. Get a...

Part 1 of 3:

Before you Program

  1. Picture 1 of How to Program in Brainf**K
    Get a brainf**k compiler. You can use compilers on the internet if you can't download one.
  2. Picture 2 of How to Program in Brainf**K
    Get a copy of the ASCII codes. Brainf**k converts letters and symbols into their ASCII value, and stores them in this form. You'll need to be able to look up the values for letters while you are programming.
Part 2 of 3:

Programming

  1. Picture 3 of How to Program in Brainf**K
    Understand how brainf**k operates. Imagine a ribbon of paper, divided into squares. The ribbon is one square wide, but an infinite number of squares long. In each square, you can put a number. Now imagine that you have a pointer (e.g. a pencil) that can point to ONE of the squares. Brainf**k can move the pointer back and forth along the ribbon, change the value in the square that the pointer is pointing to, and go around in loops.
  2. Picture 4 of How to Program in Brainf**K
    Understand what < and > do. The pointer is pointing to a particular square. < moves the pointer to the square before the current one. > moves it to the square after.
  3. Picture 5 of How to Program in Brainf**K
    Understand what + and - do. + increments (adds one to) the value of the current square. - decrements (subtracts one from) the value of the current square.
  4. Picture 6 of How to Program in Brainf**K
    Understand how brainf**k outputs characters. A full stop . is the output command. This reads the number in the current square, then outputs the corresponding ASCII character (this is why you need the ASCII table).
  5. Picture 7 of How to Program in Brainf**K
    Understand input. A comma , is the input command. This will ask you to input a string of characters. It will take the first character and store it's ASCII value in the current square, overwriting any value already there.
  6. Picture 8 of How to Program in Brainf**K
    Understand loops. [ is the start loop character. If the square under the pointer contains a zero when the program reaches this character, it will skip to the instruction immediately after the corresponding ] Otherwise, it will continue to the next instruction. When the program encounters a ], it will skip back to the corresponding [ Loops can be nested (placed one inside the other).
  7. Picture 9 of How to Program in Brainf**K
    Look at an example program. If you understand the instructions above, you should be able to figure out how it works. It will print Hello World! on the screen.   ++++++++[>++++[>++>+++>+++>+<<<<-]>+>+>->>+[<]<-]>>.>---.+++++++..+++.>>.<-.<.+++.------.--------.>>+.>++.
Part 3 of 3:

Familiarizing Yourself with the Derivatives

  1. Picture 10 of How to Program in Brainf**K
    Get to know the alternatives. There are many derivatives of brainf**k. Some of them add new features. Others simply replace the instructions with different words.
    1. Ook! is a simple derivative of brainf**k. It doesn't change any instructions, it just replaces them with ooks. Here's the translation: < = Ook? Ook.   > = Ook. Ook?   + = Ook. Ook.   - = Ook! Ook!   . = Ook! Ook.   , = Ook. Ook!   [ = Ook! Ook?   ] = Ook? Ook!      Ook! was designed to be read by orangutans (as a joke).
    2. Blub is another simple derivative. It's exactly the same as Ook!, just swap the word Ook for the word Blub e.g. [ = Blub? Blub!      As Ook! was designed for orangutans, Blub was designed for fish.
Update 05 March 2020
Category

System

Mac OS X

Hardware

Game

Tech info

Technology

Science

Life

Application

Electric

Program

Mobile