Category:Brainf***: Difference between revisions
m (Eso link) |
(Fixed code tags) |
||
Line 7: | Line 7: | ||
!align="left" |Meaning |
!align="left" |Meaning |
||
|- |
|- |
||
|style="text-align:center"|< |
|style="text-align:center"|<tt>></tt> |
||
||increment the pointer (to point to the next cell to the right). |
||increment the pointer (to point to the next cell to the right). |
||
|- |
|- |
||
|style="text-align:center"|< |
|style="text-align:center"|<tt><</tt> |
||
||decrement the pointer (to point to the next cell to the left). |
||decrement the pointer (to point to the next cell to the left). |
||
|- |
|- |
||
|style="text-align:center"|< |
|style="text-align:center"|<tt>+</tt> |
||
||increment (increase by one) the byte at the pointer. |
||increment (increase by one) the byte at the pointer. |
||
|- |
|- |
||
|style="text-align:center"|< |
|style="text-align:center"|<tt>-</tt> |
||
||decrement (decrease by one) the byte at the pointer. |
||decrement (decrease by one) the byte at the pointer. |
||
|- |
|- |
||
|style="text-align:center"|< |
|style="text-align:center"|<tt>.</tt> |
||
||output the value of the byte at the pointer. |
||output the value of the byte at the pointer. |
||
|- |
|- |
||
|style="text-align:center"|< |
|style="text-align:center"|<tt>,</tt> |
||
||accept one byte of input, storing its value in the byte at the pointer. |
||accept one byte of input, storing its value in the byte at the pointer. |
||
|- |
|- |
||
|style="text-align:center"|< |
|style="text-align:center"|<tt>[</tt> |
||
||jump forward to the command after the corresponding < |
||jump forward to the command after the corresponding <tt>]</tt> if the byte at the pointer is zero. |
||
|- |
|- |
||
|style="text-align:center"|< |
|style="text-align:center"|<tt>]</tt> |
||
||jump back to the command after the corresponding < |
||jump back to the command after the corresponding <tt>[</tt> if the byte at the pointer is nonzero. |
||
|} |
|} |
||
Alternatively, the < |
Alternatively, the <tt>]</tt> command may instead be translated as an unconditional jump '''to''' the corresponding <tt>[</tt> 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. |
All other symbols, including traditional whitespace characters, are interpreted as comments. |
Revision as of 19:36, 26 January 2009
This programming language may be used to instruct a computer to perform a task.
See Also: |
|
---|
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
Subcategories
This category has the following 3 subcategories, out of 3 total.
@
- Brainf*** examples needing attention (empty)
- Brainf*** Implementations (32 P)
- Brainf*** User (36 P)
Pages in category "Brainf***"
The following 40 pages are in this category, out of 40 total.