2008-03-23
■[Lazy-K] Lazy K インタプリタを作ってみた
あなごるの sort characters を挿入ソートで書いたらタイムアウトになって悲しかったので、速度重視で作ってみました。
公式のインタプリタ:
lazy sort+characters.lazy < input2 1.60s user 0.00s system 93% cpu 1.715 total
作ったやつ:
./lazyk sort+characters.lazy < input2 0.26s user 0.00s system 98% cpu 0.265 total
公式のはノードのメモリ管理が参照カウント方式だったんですが、生成と破棄が激しいっぽかったので copying GC にしてみました。
あとは評価器をスタックを使う方式にしたとか色々。
この手の lazy な言語の評価器の実装については、"The Implementation of Functional Programming Languages" という本(オンラインで読める)が参考になります。
追記
さっそくあなごるのインタプリタを差し替えていただきました。shinhさんありがとうございます!
コメントを書く
トラックバック - http://d.hatena.ne.jp/Irori/20080323/1206248726
リンク元
- 5 http://a.hatena.ne.jp/shinichiro_h/
- 3 http://a.hatena.ne.jp/Irori/
- 2 http://a.hatena.ne.jp/go?http://d.hatena.ne.jp/Irori/20080323175049
- 2 http://www.google.co.jp/search?q=Lazy+K&hl=ja&rlz=1T4SUNA_jaJP227JP227&start=10&sa=N
- 1 http://a.hatena.ne.jp/Ozy/
- 1 http://a.hatena.ne.jp/go?http://d.hatena.ne.jp/Irori/20080323140538
- 1 http://a.hatena.ne.jp/map?http://d.hatena.ne.jp/ytqwerty/
- 1 http://d.hatena.ne.jp
- 1 http://d.hatena.ne.jp/diarylist?of=150&mode=rss&type=public
- 1 http://d.hatena.ne.jp/keyword/インタプリタ