2017年12月2日投稿 / 投稿者 : Ryou Tanpo / タグ : 投稿プログラム ツール Brainfuck
Brainfuck プログラムを、TXT ファイル、またはコマンドラインから実行できるターミナルのようなものです。
Brainfuck は C や SmileBASIC のようなひとつのプログラミング言語ですが、命令として8文字の記号(+ - < > [ ] , .)しか使わない特徴があります。
可読性は低く、文字列を表示するだけで何十文字ものプログラムになりますが、世の中には Brainfuck で書かれた、Brainfuck を実行するインタプリタもあるもので、与えられたたった8文字の命令で、どこまでのことが実現できるか試している人もいる...のかな。
基本的な考え方としては、いくつかの要素数 *1 の配列と、配列のある要素を指すポインタ *2 があり、ポインタを増やしたり、減らしたりすることで配列の要素を選択して、要素を操作する、ということです。また、データを画面に表示するときもポインタで選択された要素が表示されます。
例えば、SmileBASIC に A[256] という配列変数と P という変数があったとして、 P をポインタとします。すると、P が 0 であるときは、「画面に文字を表示してくれー」といったときに A[0] が表示されることになります。つまり、同様に P が 3 だったときは、 A[3] が表示されます。
これは、画面に文字を表示する場合に限らず、実際に要素の値を操作するとき、また SmileBASIC でいう WHILE に相当する命令などでも同じです。
SmileBASIC と違って、実際に要素の値を増やすとか、画面を表示する際に「何を」操作するとか、「何を」表示するとかを指定しない代わりに、ポインタを動かして要素を選んで、「じゃあ表示して」といわれたときは、そのポインタが指している要素を表示すると言った感じです。
まあ、実際にリファレンスやサンプルプログラムを見ればわかると思います。
実行するとプロンプトが出てくるので、専用のコマンドか、直接 Brainfuck プログラムを入力します。
実行例
- BRAINFUCK> ,[.,]
- ABC
- BRAINFUCK> L ECHO
- L:ファイル’ECHO’がみつかりません
- BRAINFUCK> S ECHO ,[.,]
- BRAINFUCK> L ECHO
- ABC
- BRAINFUCK>
- ,[.,]
この作品に対するコメントがあれば一言どうぞ。(作品に直接関係ない質問や雑談は掲示板へ)