Brainfuckインタープリタ

至高のネタ言語BrainfuckのインタープリタをJavaScriptで実装。何番煎じだよこれ・・・。

Brainfuckについて

Brainfuckとは?

BrainfuckはUrban Mullerがコンパイラがなるべく小さくなる言語として考案した言語である。彼自身が開発したコンパイラのサイズは123バイト、インタプリタは98バイトと実際かなり小さい。それでいてチューリング完全である。すなわち、理論上はC言語等の一般的なプログラミング言語と同等の表現力を持っている。

言語仕様

以下の八項が言語仕様のすべてである。

  1. > ポインタをインクリメントする。
  2. < ポインタをデクリメントする。
  3. + ポインタが指す値をインクリメントする。
  4. - ポインタが指す値をデクリメントする。
  5. . ポインタが指す値を出力する。
  6. , 1バイトを入力してポインタが指す値に代入する。
  7. [ ポインタが指す値が0なら、対応する ] の直後までジャンプする。
  8. ] ポインタが指す値が0でないなら、対応する [ にジャンプする。

本当にこれで全部。

その他

もっと詳しいことが知りたければ以下のリンクを参照されたし。

プログラム

で、本題であるBrainfuckのJavaScript実装がこちら。

以下のリンクからどうぞ。

インタープリタ仕様

なお、文字エンコーディングの変換にはEscape Codec Library: ecl.jsを使用した。