No.01 ・ 記号系
Brainfuck
= 命令が8つだけの言語
- 読みにくさ
- ●●●○○
- 書きにくさ
- ●●●●○
- 誕生年
- 1993年
- 作者
- Urban Müller
- 生まれた国
- スイス
- 学べること
- 8つの命令だけで、計算できることはすべて計算できるということ(チューリング完全)
どんな言語か
「プログラムを読みとる仕組みを、できるだけ小さくつくりたい」という発想から、1993年に作られました。
使う記号は > < + - . , [ ] の8つだけです。それ以外の文字はすべて無視されるため、そのままコメントとして書き込めます。
それでも、この8つの命令だけで計算できることはすべて計算できます。足し算も引き算も、原理上はどんなプログラムでも書けます。ただし、記述にかかる手間は非常に大きくなります。
メモリは、一列に並んだマスの列(テープ)として扱います。> < でテープ上を左右に移動し、+ - でマスの中の数を増減します。. でその数を文字として画面に出力します。仕組みはこれだけです。
コード例(全文)
Hello World!
++++++++[>++++[>++>+++>+++>+<<<<-]>+>+>->>+[<]<-] >>.>---.+++++++..+++.>>.<-.<.+++.------.--------.>>+.>++.
その場で実行する
このページの中だけで動きます。入力したコードはサーバーへ送られません。
上のコード例をそのまま実行します。
ボタンを押すと、ここに出力が出ます。
使える記号は > < + - . , [ ] の8つだけです。それ以外の文字はすべて無視されるため、コメントを書き込んでも問題ありません。
ボタンを押すと、ここに出力が出ます。
試しに: +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++. と書くと、+の数だけ値が進み、その文字が出力されます。
もっとじっくり書きたいときは Brainfuck の実行環境 へどうぞ。
ひとこと
命令の少なさだけを見ると単純に見えますが、8つの命令だけで計算できることはすべて計算できます(チューリング完全)。実装のしやすさを最優先にした設計のため、書く側の負担はそのぶん大きくなります。
もっとくわしく(外部サイト): https://esolangs.org/wiki/Brainfuck