Brainfuck

Aus ProgrammingWiki

Wiki-Quelltext dieser Seite.

<language>FLACI_</language>
Die Programmiersprache Brainfuck ist keine ernsthafte Programmiersprache, sie gilt aber mit ihren wenigen Befehlen dennoch als Turing-complete und kann damit theoretisch alles berechnen, was mit anderen Programmiersprachen auch möglich ist.

Brainfuck kennt die folgenden 8 Befehle:
<pre>
> = increases memory pointer, or moves the pointer to the right 1 block.
< = decreases memory pointer, or moves the pointer to the left 1 block.
+ = increases value stored at the block pointed to by the memory pointer
- = decreases value stored at the block pointed to by the memory pointer
[ = like c while(cur_block_value != 0) loop.
] = if block currently pointed to's value is not zero, jump back to [
, = like c getchar(). input 1 character.
. = like c putchar(). print 1 character to the console
</pre>

Hier ein Hallo World! Programm in Brainfuck:

<run id="5db1736d87d73">
>+++++++++[<++++++++>-]<.>+++++++[<++++>-]<+.+++++++..+++.[-]
>++++++++[<++++>-] <.>+++++++++++[<++++++++>-]<-.--------.+++
.------.--------.[-]>++++++++[<++++>- ]<+.[-]++++++++++.
</run>

Zur Hilfestellung die ASCII-Tabelle:

{| class="toptextcells"
|-
|
{| class="wikitable" style="margin:0;"
|- class="hintergrundfarbe6"
! Dez !! ASCII
|-
| 0 ||NUL
|-
| 1 ||SOH
|-
| 2 ||STX
|-
| 3 ||ETX
|-
| 4 ||EOT
|-
| 5 ||ENQ
|-
| 6 ||ACK
|-
| 7 ||BEL
|-
| 8 ||BS
|-
| 9 ||HT
|-
| 10 ||LF
|-
| 11 ||VT
|-
| 12 ||FF
|-
| 13 ||CR
|-
| 14 ||SO
|-
| 15 ||SI
|-
| 16 ||DLE
|-
| 17 ||DC1
|-
| 18 ||DC2
|-
| 19 ||DC3
|-
| 20 ||DC4
|-
| 21 ||NAK
|-
| 22 ||SYN
|-
| 23 ||ETB
|-
| 24 ||CAN
|-
| 25 ||EM
|-
| 26 ||SUB
|-
| 27 ||ESC
|-
| 28 ||FS
|-
| 29 ||GS
|-
| 30 ||RS
|-
| 31 ||US
|}
|
{| class="wikitable" style="margin:0;"
|- class="hintergrundfarbe6"
! Dez !! ASCII
|-
| 32 ||SP
|-
| 33 ||!
|-
| 34 ||"
|-
| 35 ||#
|-
| 36 ||$
|-
| 37 ||%
|-
| 38 ||&
|-
| 39 ||'
|-
| 40 ||(&nbsp;
|-
| 41 ||&nbsp;)
|-
| 42 ||*
|-
| 43 ||+
|-
| 44 ||,
|-
| 45 ||-
|-
| 46 ||.
|-
| 47 ||/
|-
| 48 ||0
|-
| 49 ||1
|-
| 50 ||2
|-
| 51 ||3
|-
| 52 ||4
|-
| 53 ||5
|-
| 54 ||6
|-
| 55 ||7
|-
| 56 ||8
|-
| 57 ||9
|-
| 58 ||:
|-
| 59 ||;
|-
| 60 ||<
|-
| 61 ||=
|-
| 62 ||>
|-
| 63 ||?
|}
|
{| class="wikitable" style="margin:0;"
|- class="hintergrundfarbe6"
! Dez !!  ASCII
|-
| 64 ||@
|-
| 65 ||A
|-
| 66 ||B
|-
| 67 ||C
|-
| 68 ||D
|-
| 69 ||E
|-
| 70 ||F
|-
| 71 ||G
|-
| 72 ||H
|-
| 73 ||I
|-
| 74 ||J
|-
| 75 ||K
|-
| 76 ||L
|-
| 77 ||M
|-
| 78 ||N
|-
| 79 ||O
|-
| 80 ||P
|-
| 81 ||Q
|-
| 82 ||R
|-
| 83 ||S
|-
| 84 ||T
|-
| 85 ||U
|-
| 86 ||V
|-
| 87 ||W
|-
| 88 ||X
|-
| 89 ||Y
|-
| 90 ||Z
|-
| 91 ||[
|-
| 92 ||\
|-
| 93 ||]
|-
| 94 ||^
|-
| 95 ||_
|}
|
{| class="wikitable" style="margin:0;"
|- class="hintergrundfarbe6"
! Dez !! ASCII
|-
| 96 ||`
|-
| 97 ||a
|-
| 98 ||b
|-
| 99 ||c
|-
| 100 ||d
|-
| 101 ||e
|-
| 102 ||f
|-
| 103 ||g
|-
| 104 ||h
|-
| 105 ||i
|-
| 106 ||j
|-
| 107 ||k
|-
| 108 ||l
|-
| 109 ||m
|-
| 110 ||n
|-
| 111 ||o
|-
| 112 ||p
|-
| 113 ||q
|-
| 114 ||r
|-
| 115 ||s
|-
| 116 ||t
|-
| 117 ||u
|-
| 118 ||v
|-
| 119 ||w
|-
| 120 ||x
|-
| 121 ||y
|-
| 122 ||z
|-
| 123 ||{
|-
| 124 ||&#124;
|-
| 125 ||}
|-
| 126 ||~
|-
| 127 ||DEL
|}
|}