
Brainfuckで遊んでみた①
こんにちは。プログラミングとかが好きな人です。学生です。
noteについては何がなんだかまだよくわかっておりませんが、
読んでくれるとかなり喜ぶと思います。
プログラミングはかなり初心者ですが、このBrainf*ckという言語が少し面白かったので(時間があれば)これから書き留めていこうと思います。
Brainf*ckって?
そもそもBrainf*ckがどんな言語よくわからない人やそもそも初耳の人が多いかもしれないので、今回はそれを軽く説明します。
Brainf*ckというのは、所謂「難解プログラミング」の一つです。つまり、実用性や可読性などは全く考慮されていない言語です。
PythonやJavaの代わりに使えるような言語ではなく(チューニング完全なので理論上はできるかもしれませんが)あくまでもおもちゃです。
そもそも、Brainf*ckという名前が「頭をごちゃごちゃにする」という意味の言葉になっています。
では、なぜこの言語がここまで難解と言われるのでしょうか?
まず、Brainf*ckには、以下の表に示されている8つしか、命令が定義されていません。
> ポインタをインクリメント
< ポインタをデクリメント
+ ポインタが指す値をインクリメント
- ポインタが指す値をデクリメント
[ もしポインタが指す値が0であるなら、]までジャンプ
[ もしポインタが指す値が0でないなら、[までジャンプ
. ポインタが指す値を出力(ASCIIエンコーディング)
, 1バイトの入力を受け付ける
そして次に、上の表を見ればわかりますが、全ての命令が一文字である ため、可読性が終わっています。可読性が非常に低いです。
詳しく知りたい方はWikipediaに記事があるのでそちらを参照してください。
Brainfu*ckを使って色々作ってみようと思うので、受験から現実逃避できれば時間があれば、使い方など続きを投稿しようと思います。