BrainCrashとは、難解プログラミング言語「Brainfuck」から派生したプログラミング言語である。
新たな命令が追加され比較的使いやすくなった。
概要
BrainCrashはBrainfuckから派生したプログラミング言語で、難解な言語を少しでも扱いやすくしようという考案から誕生した。なお、Brainfuckもチューリング完全である。
- 「|」 … 現在のポインタの位置にある値と、その次のポインタの位置にある値をビットOR演算し、その次のポインタの位置に代入する。また、ポインタは現在の位置から1つ進められる。
- 「&」 … 現在のポインタの位置にある値と、その次のポインタの位置にある値をビットAND演算し、その次のポインタの位置に代入する。また、ポインタは現在の位置から1つ進められる。
- 「~」 … 現在のポインタの位置にある値をビットNOT演算(つまりビット反転)する。
- 「^」 … 現在のポインタの位置にある値と、その次のポインタの位置にある値をビットXOR演算し、その次のポインタの位置に代入する。また、ポインタは現在の位置から1つ進められる。
仕様
BrainCrashは、追加された命令に加え、さらに以下の二つの仕様が追加、変更された。
- 実行時、メモリにはHello, world!に相当する72,101,108,108,111,44,32,119,111,114,108,100,33が0番地よりこの順で積まれる。
- 終了時、現在指し示すポインタの値を、ポインタの値が0になるまでポインタを進めて出力する。
プログラム例
プログラムの基本はやっぱりHello worldを出力するプログラム。
プログラム説明
見たら分かるように、プログラムに何も書かないことで実は"Hello, world"することができる。
そのタネあかしは仕様にある。プログラムに何も書かないということは、すなわちメモリに72,101,108,108,111,44,32,119,111,114,108,100,33がそのまま変更されずに存在する状態でプログラムが終了されるということであり、また、終了時に現在指し示すポインタの値をポインタの値が0になるまでポインタを進めて出力されるので、"Hello, world!"と表示されることになる。
関連項目
- 5
- 0pt