Brainf**k consists of a continuous sequence of instructions that are stored in a program memory and are processed continuously starting with the first instruction.
Data is stored and processed in a data memory.
Brainf**k has eight commands, each consisting of a single character:
Character | Meaning |
---|---|
> | increment the data pointer (to point to the next cell to the right) |
< | decrement the data pointer (to point to the next cell to the left) |
+ | increment the byte at the data pointer (increase by one) |
- | decrement the byte at the data pointer (decrease by one) |
. | output the byte at the data pointer |
, | accept one byte of input, storing its value in the byte at the data pointer |
[ | if the byte at the data pointer is zero, then instead of moving the instruction pointerforward to the next command, jump it forward to the command after the matching ] command |
] | 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 |