以下では本研究で開発中のソフトウェアについて述べる.本研究で開発中のソ フトウェアは主に 3 つの部分に分けられ,以下に示す図のような構成をなす. ここで,{}で囲まれた箇所は入出力データであり,それ以外はプログラムを 表す.
{文脈自由文法}
↓
LR 表作成モジュール(1)
↓
{文脈自由文法に対応する LR 表}
↓
Prolog/KL1 節生成モジュール(2)
↓
{Prolog/KL1 節} LR パーザのメインプログラム(3)
| |
 ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄| ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄
↓
−−−−−−−−−→ LR パーザ −−−−−−→{解析結果}
↑
{タグ付き文}
↑
Brill's Tagger
↑
{入力文}
図1 ソフトウェアの構成
LR 表作成モジュール(1)は,文脈自由文法を入力データとし,その文法に対応
する LR 表を自動作成する.この LR 表は Canonical LR 表という,もっとも
制約の強いものである.Prolog/KL1 節生成モジュール(2)は LR 表に対応する
Prolog 節および KL1 節を生成する.LR 表を直接利用するよりもこのような
コンパイルした節を用いることでパーザの解析速度を向上できる.ここで得ら
れた節を LR パーザのメインプログラム(3)と合わせて LR パーザとして利用
する.現状では本研究の LR パーザは Prolog の処理系上で動作している.
KL1 プログラムとしての本手法の実装に関しては,図中の (2) の文法から
KL1 節に変換するモジュールが開発済みである.(1) の LR 表作成モジュール
は,並列実装においても Prolog 版のものと同じものを利用できるので,変更
の必要がない.また,(3) の LR パーザのメインプログラムは大きく,適格文
を解析する部分と不適格性を検出し修正をほどこす部分に分けられるが,その
うち,適格文を解析する部分は KL1 プログラムとして構築済みである.後者
の部分を今後作成する予定である.本ソフトウェアの特徴は以下の通りである.