« Brainf*ck で動的リスト | メイン | Movable Type をコマンドラインから操作する (トラックバックスパム一括削除) »

2006年07月05日

Re: BF2JS opimizing compiler

BFにはまっておられる奥さんに。
(brainfu.k - BF2JS opimizing compiler - 404 Blog Not Found)

 弾さん、ありがとうございます。 String.prototype.replace でコンパイラを実装しているのが美しいと思います。

 自分でも触りたくなったので、単純な Dead code elimination と、いくつかの Peephole Optimization を追加してみました。特にゼロクリアと加算処理の最適化は効果が大きかったようで、手元のパソコンでは、素数計算が2秒以内で完了するようになりました。

 代入処理全体を置換したり、あるいは、ループ内でメモリの値をローカル変数に割りつけたりといった、さらなる最適化の余地は残っていますが、おいしいところは片付けられたかな、という感じです。

BF Source
Input
Output
 
Elapsed Time
Compiled BF
 

投稿者 kazuho : 2006年07月05日 13:16 このエントリーを含むはてなブックマーク このエントリーを含むはてなブックマーク

トラックバック

このエントリーのトラックバックURL:
http://labs.cybozu.co.jp/cgi-bin/mt-admin/mt-tbp.cgi/681