Brainfuck


[外]の表記がついた項目は外部ページへリンクしています。

Brainfuckとは?


難解プログラミング言語の一種

Brainfuck(ブレインファック)は難解プログラミング言語の一種で、Urban Müller氏によって「コンパイラがなるべく小さくなるように」というコンセプトの元、考案されました。たしかMüller氏が開発したコンパイラのサイズは123バイトでインタプリタは98バイト。これがどんなに小さいサイズかはわかる人にはわかる。

名称からわかるとおり卑語が含まれる為、よくBrainf*ckやBFと呼称されます。当コンテンツもこれに習って各ページの本文ではBFと呼称することにします。


使用用途

BFは、例えばC/C++のポインタの概念が理解しきれずに挫折した経験がある人、または新しくポインタに挑戦しようと思っている人に最適なポインタの基礎を学習できる言語です。

理由は単純に2つあって、1つ目はBFのプログラムを記述する上で必須となるのがポインタの概念であること。2つ目がBFのポインタはC/C++のポインタより直感的に操作できるからです。

BFで覚えることと言えば基礎構文(算術計算、if構文、for構文、ポインタセット、文字入出力)とポインタ操作だけなので、難しい構文やルールに踊らされることなく概念を覚えることが容易になります。




C/C++を使い始めた人にポインタの概念を覚えさせるのに役立ちそうな言語です。 C/C++で始めに基本的なこと(変数の概念/文字入出力/算術計算/配列の概念/if文/for文)を習得した後にBFの習得に入ると、 な、なんと! BFで覚えることはポインタの概念だけになるんですよ。

BFでやることは算術計算、if構文、for構文、ポインタセット、文字入出力だけ(厳密に言えばもうちょっとあります)なんです。 しかもBFのポインタはC/C++のように大量にある構文やルールに踊らされることなく直感的に動作させることができる為、 ポインタの基礎の基礎という面として見れば最適な学習言語になるでしょう。


実用性について

実用性はまったくありません、あしからず。

そもそも難解プログラミング言語自体に実用性を求めることが間違っているので、このような趣味言語とC/C++等のような実用言語を同じ水準で考えないようにしてください。趣味言語は仕事で殆ど役に立ちません。


※私的にはポインタの基礎の学習の面で実用性は少なからずあるんじゃないのかなぁ〜と考えましたが、実務(仕事)の観点で考えると実用性はやっぱり無いんだと思います。