Category:Brainf***: Difference between revisions

From Rosetta Code
Content added Content deleted
m (Eso link)
(Fixed code tags)
Line 7:
!align="left" |Meaning
|-
|style="text-align:center"|<codett>></codett>
||increment the pointer (to point to the next cell to the right).
|-
|style="text-align:center"|<codett><</codett>
||decrement the pointer (to point to the next cell to the left).
|-
|style="text-align:center"|<codett>+</codett>
||increment (increase by one) the byte at the pointer.
|-
|style="text-align:center"|<codett>-</codett>
||decrement (decrease by one) the byte at the pointer.
|-
|style="text-align:center"|<codett>.</codett>
||output the value of the byte at the pointer.
|-
|style="text-align:center"|<codett>,</codett>
||accept one byte of input, storing its value in the byte at the pointer.
|-
|style="text-align:center"|<codett>[</codett>
||jump forward to the command after the corresponding <codett>]</codett> if the byte at the pointer is zero.
|-
|style="text-align:center"|<codett>]</codett>
||jump back to the command after the corresponding <codett>[</codett> if the byte at the pointer is nonzero.
|}
 
Alternatively, the <codett>]</codett> command may instead be translated as an unconditional jump '''to''' the corresponding <codett>[</codett> command, or vice versa; programs will behave the same but will run more slowly.
 
All other symbols, including traditional whitespace characters, are interpreted as comments.

Revision as of 19:36, 26 January 2009

Language
Brainf***
This programming language may be used to instruct a computer to perform a task.
See Also:


Listed below are all of the tasks on Rosetta Code which have been solved using Brainf***.

Also known as Brainfuck. Created by Urban Müller in 1993 in an attempt to create the world's smallest Turing-complete compiler. It is noted as an esoteric programming language, as it is not ordinarily used for applications development, but it also noted as being a minimalist language.

The complete specification for the language can be summed up with the following eight symbols:

Character Meaning
> increment the pointer (to point to the next cell to the right).
< decrement the pointer (to point to the next cell to the left).
+ increment (increase by one) the byte at the pointer.
- decrement (decrease by one) the byte at the pointer.
. output the value of the byte at the pointer.
, accept one byte of input, storing its value in the byte at the pointer.
[ jump forward to the command after the corresponding ] if the byte at the pointer is zero.
] jump back to the command after the corresponding [ if the byte at the pointer is nonzero.

Alternatively, the ] command may instead be translated as an unconditional jump to the corresponding [ command, or vice versa; programs will behave the same but will run more slowly.

All other symbols, including traditional whitespace characters, are interpreted as comments.

Due to this minimal instruction set, Brainf*** is used as an introduction to compilers and has even been successfully implemented as a microprocessor core and the foundation to an operating system using a slightly extended syntax for output.

See also

  • RCBF - BF interpreters as a Rosetta Code task

Citations