チャートパーサ: Chart parser)は、自然言語などの曖昧な文法に向いた構文解析器の一種である。動的計画法を用い、中間的かつ仮説的な結果をチャート(chart)と呼ばれるデータ構造に格納しておき、再利用する。これによりバックトラッキングを省き、同時に組合せ爆発を防ぐ。

チャートパーサは Martin Kay が開発した。

チャートパーサの種類 編集

チャートパーサはコンピュータ言語の構文解析にも利用可能である。アーリー法は任意の文脈自由文法の構文解析が可能で、特定の言語の文法記述が容易であることから、パーサジェネレータで使われてきた。しかし、他の一般的手法よりも効率が低いため、主要なコンパイラでは使われていない。

双方向チャートパーサでは、チャートのエッジには方向(前か後ろ)が付与され、構文規則はそのエッジの方向に従う。

インクリメンタル・チャートパーサでは、テキストをユーザーが編集するのと同期してチャートがインクリメンタル(漸増的)に構築される。

チャートパーサにはトップダウン方式とボトムアップ方式がある。また、能動的チャートパーサと受動的チャートパーサにも分類できる。

関連項目 編集