Brainfuckとは、難解であるとされるプログラミング言語の一つである。
名称が良いものではないため、通常はBrainf*ckと書く。
BrainfuckはUrban Müllerが開発したプログラミング言語で、コンパイラが極限に小さくなるように考案された言語で、実用的な言語ではない。実際のコンパイラは1KBもない。
実行可能な命令は8つしか存在しないが、このプログラミング言語は立派なチューリング完全であり、理論的にはC言語で記述可能な命令と同様の表現力を持つことが分かっている。
Brainfuckには8つの命令が存在する。これらを組み合わせることで普通のプログラムと同様の事が実行することができる。
プログラムの基本はやっぱりHello worldを出力するプログラム。
+++++++++[>++++++++>+++++++++++>+++++<<<-]>.>++.+++++++..+
++.>-.------------.<++++++++.--------.+++.------.--------.>+.
最初のポインタの位置で値を9回インクリメントする。最初のループで最初のポインタに入っている値をループカウンタとし、2番目のポインタの値を8×9=72、3番目のポインタの値を11×9=99、4番目のポインタの値を5×9=45にする。
2番目のポインタに入っている値は72で、これを文字コードで出力すると"H"になる。
ポインタをインクリメントし、3番目のポインタの値を2回インクリメントして101にして出力すると、"e"になる。
それをさらに7回インクリメントすると"l"になり、2回出力する。さらに3回インクリメントして"o"にする。
ポインタをインクリメントし、4番目のポインタの値を1回デクリメントして44にして出力すると","になる。
それをさらに12回デクリメントすると" (半角スペース)"になる。
以降、ポインタの移動とインクリメント・デクリメントを繰り返して出力すると、最終的には「Hello, world!」と出力(表示)される。
文字コード表に関しては文字コードでググれば見つかるかもしれない。
掲示板
65 ななしのよっしん
2020/08/13(木) 01:54:49 ID: KBuf8EShtM
どこかで2桁バイトのHello Worldコードを見た気がする
66 ななしのよっしん
2021/09/29(水) 00:32:21 ID: RV7V5bw9W5
67 ななしのよっしん
2021/10/13(水) 09:14:30 ID: W3oFHIo/0i
>>64
意味を理解して吹いたわ
急上昇ワード改
最終更新:2024/04/25(木) 20:00
最終更新:2024/04/25(木) 20:00
ウォッチリストに追加しました!
すでにウォッチリストに
入っています。
追加に失敗しました。
ほめた!
ほめるを取消しました。
ほめるに失敗しました。
ほめるの取消しに失敗しました。