パックラット構文解析

出典: フリー百科事典『ウィキペディア(Wikipedia)』

2021年8月26日 (木) 09:17; Anaka Satamiya (会話 | 投稿記録) による版 (リンク先変更)(日時は個人設定で未設定ならUTC

(差分) ← 古い版 | 最新版 (差分) | 新しい版 → (差分)

パックラット構文解析(英:Packrat Parsing)とは、PEGにより構文解析を行うアルゴリズムである。"packrat"はネズミの一種であり、そのネズミの習性に由来して「役に立たなそうなものでも習慣的に集めて持っておく人」[1]という意味でも使われる。

アルゴリズム[編集]

バックトラックのある再帰下降構文解析の途中結果をメモ化し、各構文解析関数が同じ入力位置について高々1回までしか呼ばれないようにする。このことにより、解析時間は文字列の長さに対して常に線型時間で動作するようになる。

実装一覧[編集]

パーサジェネレータパーサコンビネータでの実装がある。

  • Waxeye [1]
  • PackCC [2] - C 用 (左再帰サポート)

脚注[編集]

参考文献[編集]

  • The Packrat Parsing and Parsing Expression Grammars Page [3]
  • Bryan Ford, Packrat Parsing: Simple, Powerful, Lazy, Linear Time[4]