Research Abstract |
入力列を後戻りせずに左から右へ1度検査するだけで、構文解析と同時にすべての属性の値を計算する属性評価法がある.本研究では,そのような既存の属性評価法より効率のよい属性評価法と既存の方法より広いグラスの記述を扱うことのできる属性評価法を開発し,属性文法に基づく仕様記述から効率よくソフトウェアを生成するための構成法を示した.具体的な成果を以下に示す. Earleyの構文解析アルゴリズムに基づく属性評価法の効率化 一般の文脈自由文法を効率よく構文解析することのできる方法にEarleyの構文解析法がある.この構文解析で用いる項目に属性情報を付加し,構文解析と同時に属性を評価する方法がある.その方法を応用し,先読み情報を用いて冗長な計算を削除した効率のよい属性評価アルゴリズムを示した.この方法により,典型的な属性文法において,従来の方法で数え上げていた項目の数が約25%減少した. LR(κ)構文解析法に基づく属性評価法の扱う範囲の拡大化 既存のLR(κ)構文解析と同時に属性評価できる最大のクラスはLR属性文法とその派生クラスである.これらのクラスでは,左再帰の非終端記号に相続属性が含まれていた場合,一般には評価できない.本研究では可能な属性値を予測することでこの制限を緩和し,より広い属性文法のクラスを扱えるように拡張した.この拡張により,より自然な属性文法の記述からソフトウェアを生成することができるようになった. 新しい方法の有用性の検証 本研究で開発した方法の効率を実験で確認した.その結果,ソフトウェア生成系で典型的に用いるより自然な属性文法の記述を既存の方法より効率よく評価できることが確認できた.このことから,より柔軟な属性文法に基づく仕様記述からソフトウェアを効率よく構成できることを確認した.
|