「コンパイラ・スクリ ..
[2ch|▼Menu]
309:デフォルトの名無しさん
09/08/04 16:14:10
PEGの利点:
・原理的にyaccとかのLALR(1)より強力なので、yaccでハンドリングするのが難しい文法も簡単に扱える(ことがある)
・レクサとパーザが統合されてるので、Rubyの"#{exp}"みたいな式埋め込み文字列みたいな文法も簡単に扱える
 ・Rubyとかではトリッキーな事をしてこの問題を回避している
・アルゴリズムが簡単なので挙動を理解しやすい=文法をデバッグしやすい(かも)

PEGの欠点:
・ナイーブな実装では最悪の場合指数関数時間(だけど、実用上最悪ケースはそんなに起きないと思う)
・メモ化(Packrat)しても、定数係数でLLやLRとかの非バックトラック型のパーザよりは遅い
・Packratだと、状態付きパーザを扱うのが難しい(シンボル表を参照しながらパーズする場合など)
・レクサとパーザが統合されてるので、空白とかの処理がやや面倒


次ページ
続きを表示
1を表示
最新レス表示
スレッドの検索
類似スレ一覧
話題のニュース
おまかせリスト
▼オプションを表示
暇つぶし2ch

4801日前に更新/260 KB
担当:undef