AirH" Annotation cvs cygwin DSL Eclipse Flash flex git Gizmo java javascript Linux metadata NOKIA OpenLaszlo packrat ruby RubyKaigi RubyOnRails Seesaa sourceforge SVN tdp4j tdp4js tdp4r thunderbird vodafone W-ZERO3 Windows X02HT x11 xml タグ ポーランド記法 携帯 構文解析
タグ / packrat
記事
TDP4R: Packrat Parsing [2006/07/20 10:17]
TDP4Rの高速化に関連して、Packrat Parsingの論文を少し眺めてみた。やりたいことは、バックトラッキングの抑止で、その手段として、lazy evaluationとmemoizationという新しい道具を使ったという感じだ。関数で再帰下降式に実装する場合を考えると、各パース関数は(statelessであれば)文字を一つ入力すれば、後続するパース関数が一意に定まる。よって、その後続するパース関数をメモできるというもの。のように見えた。結局、A->B C D1 | B C D2 があれば、A -> B C (D1 | D2) にする。そして、D1 | D2 の部分は文字一つでどちらかに決まれば良いわけで、これをどうスマートに実現するかだろう。さて、packratじゃなくてもいいけど、うまいことtdp4rを速くするにはどうするのがよいだろう?余談1:packratというrubyforgeのプロジェクトがあった。