🧠

Brainfuck超入門!難解言語を完全理解する

2025/02/09に公開

🔥 Brainfuckって何?

Brainfuck(ブレインファック)は、極限まで単純化されたプログラミング言語 です。
たった8種類の命令 だけで、計算や出力ができます!

「難解言語(Esoteric Language)」の代表格 で、「人間が読むことを考えていない」ため、脳が爆発しそうなコード になります。

📌 Brainfuck の基本ルール

Brainfuck には たった 8 つのコマンド しかありません!

コマンド 説明
> メモリポインタを右に移動 >>>3つ右へ移動
< メモリポインタを左に移動 <<<3つ左へ移動
+ 現在のセルの値を 1 増やす +++3増やす
- 現在のセルの値を 1 減らす ---3減らす
. 現在のセルの値を出力 (ASCII) .現在の値を文字として表示
, 1 文字入力を受け取り、セルに保存 ,入力を受ける
[ ] までのコードをループ(セルが 0 でない間) [->+<]ループ処理
] [ に戻る(ループの終了) ][ の閉じカッコ

🧠 メモリとポインタの仕組み

Brainfuck は 30,000個のメモリセル(配列) を持っていて、ポインタ(カーソル)を移動しながら計算 します!

初期状態(ポインタは左端)
[0] 0 0 0 0 0 0 0 0 0 0

`+++>` を実行すると…
[3] 0 0 0 0 0 0 0 0 0 0   (1つ目のセルが 3)
          ^
ポインタが1つ右へ移動!

🎉 「A」を出力する最短コード

📝 1文字ずつ + を足す方法

+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++.

📌 ASCIIコード 65(A) を直接作って . で出力!
📌 ただし、+ を 65回打つのはつらい…

🔥 ループ [ ] を使って効率化

📝 ループを使って「A」を出力

++++++++[>++++++++<-]>.

📌 ループの動き

  1. ++++++++最初のセルに「8」を入れる
  2. [>++++++++<-]「8回 × 8 を足す」(結果: 64)
  3. >.ポインタを移動して +1 して「65」にして出力!

「ループを使うと、短いコードで大きな数を作れる!」

🚀 「Hello, World!」を出力

++++++++++[>+++++++>++++++++++>+++>+<<<<-]>++.>+.+++++++..+++.
>++.<<+++++++++++++++.>.+++.------.--------.>+.>.

📌 「掛け算の考え方」で、大量の文字を効率よく出力する!
📌 Brainfuck の王道コード!

🤯 掛け算 [>++++++++<-] の仕組み

「×8」を作るループの正体

++++++++[>++++++++<-]

📌 実は [ ] のループは「8回繰り返す」だけ!
📌 掛け算をしているのは ++++++++ の方!

🎯 まとめ

コマンド 内容
> < ポインタを移動
+ - セルの値を変更
. , 出力・入力
[ ] ループ処理

「ループで掛け算」を理解すると、Brainfuck が楽しくなる!

🔥 Brainfuck を楽しむために

  1. 最初は「A」を出すだけのコードから練習!
  2. 「ループを使って掛け算」を意識するとわかりやすい!
  3. 最終目標は「Hello, World!」の出力!

🏆 最終問題!

Q. このコードは何を出力するでしょう?

+++++[>+++++<-]>.

🎉 これで Brainfuck マスターへの第一歩!

次は Ook! などの難解言語にも挑戦してみよう!

Discussion