brainf*ckとよばれる言語があります。 言語としては非常にシンプルでおもしろい言語です。 ということで、Interpreterパターンの練習がてらにJavaで実装してみました。 言語使用など詳しいことは 検索してみてください。
Common Public License - v 1.0のもと公開します。 ただし、改変したものを配布するときは、パッケージ名も変更してください。
この処理系は最適化を一切考えていません。 むしろデザインパターンを使ったことで(たぶん)重くなっています。 間違っても高速な動作など期待しないでください。
言語仕様の割にギャグみたいに複雑な実装をしてますが、 あくまで練習のためです。(^_^;)
J2SE 5.0で開発したのでそれ以降の環境であれば、
動くはずです。ただし、J2SE 1.4までの機能しか使用していないので、
もしかしたら1.4でも動くかもしれません。
追記(05/9/23)
J2SE 5.0用に書き換えました。
jp.gr.java_conf.nori_j.bf.Mainを呼び出してください。
起動するといきなり入力待ちになるという荒い設計です。(^_^;)
標準入力よりBrainf*ckのプログラムを入力してください。
手で入力する場合、すべて入力したらEnterした後、
RUN
と打ってEnterすることによっても、処理系が動作を始めます。
Input:
と出たときは適当な文字列を入力してください。
プログラミングに当たっては、 増補改訂版Java言語で学ぶデザインパターン入門を参考にしました。著者の方に感謝です。