Brainfuckインタープリタをできるだけ短く書く


昔のプロジェクトを掘り起こしていたらたまたま出てきた”Brainfuckのインタープリタ”
除いてみたらとんでもコードだった

出てきたコードはこのコート。最小目指してるといっても普通にもっと短くできそうです。

判定式が文字コードっていう時点でもう読む気がなくなるコードですね…後変数が1文字だったりとか、いろいろ崩壊してます。
さらにこのインタープリタ、そもそも処理できるものも限られていて、メモリは256個、メモリに代入できる数値はintの範囲まで。
ループは9個重ねることができます。

ただ最適化してるだけあって処理はあまり遅くないように感じます。

このコード、空白や改行などソースコードにいらないものを取り除いて行ったら431文字だったのですが、どうでしょう。
良ければこれより短いコードを書いた方、報告していただけると嬉しいです。

ついでに、これが徹底的に無駄をなくしたコード。

このコードなら、コンソールアプリケーションを作って、Program.csをこれに置き換えても使えます。なおこちらのコードなら456文字となっています。

試した所きちんど動作した。のはいいものやってるうちに自分がなにしてるのかわからなくなってきた…

もともと短いコードで何でもできる言語なので、インタープリタも短く作っていきたいですね

動作テスト用にHello, world!のBrainfuckコード置いておきますね

 

Leave a Reply

Your email address will not be published. Required fields are marked *

You may use these HTML tags and attributes: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code class="" title="" data-url=""> <del datetime=""> <em> <i> <q cite=""> <strike> <strong> <pre class="" title="" data-url=""> <span class="" title="" data-url="">