🧠
Brainfuck超入門!難解言語を完全理解する
🔥 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」を出力
++++++++[>++++++++<-]>.
📌 ループの動き
-
++++++++
→ 最初のセルに「8」を入れる -
[>++++++++<-]
→ 「8回 × 8 を足す」(結果: 64) -
>.
→ ポインタを移動して +1 して「65」にして出力!
「ループを使うと、短いコードで大きな数を作れる!」
🚀 「Hello, World!」を出力
++++++++++[>+++++++>++++++++++>+++>+<<<<-]>++.>+.+++++++..+++.
>++.<<+++++++++++++++.>.+++.------.--------.>+.>.
📌 「掛け算の考え方」で、大量の文字を効率よく出力する!
📌 Brainfuck の王道コード!
[>++++++++<-]
の仕組み
🤯 掛け算 「×8」を作るループの正体
++++++++[>++++++++<-]
📌 実は [ ]
のループは「8回繰り返す」だけ!
📌 掛け算をしているのは ++++++++
の方!
🎯 まとめ
コマンド | 内容 |
---|---|
> <
|
ポインタを移動 |
+ -
|
セルの値を変更 |
. ,
|
出力・入力 |
[ ]
|
ループ処理 |
「ループで掛け算」を理解すると、Brainfuck が楽しくなる!
🔥 Brainfuck を楽しむために
- 最初は「A」を出すだけのコードから練習!
- 「ループを使って掛け算」を意識するとわかりやすい!
- 最終目標は「Hello, World!」の出力!
🏆 最終問題!
Q. このコードは何を出力するでしょう?
+++++[>+++++<-]>.
🎉 これで Brainfuck マスターへの第一歩!
次は Ook! などの難解言語にも挑戦してみよう!
Discussion