研究概要 |
1.研究の目的 コンパイラの分野では、従来意味解析の定式化が遅れていたが、属性文法の提案以来、属性文法の記述からコンパイラを生成する研究が盛んになった。我々はその中の一つとして、LR構文解析と同時に意味解析の行えるECLR属性文法を提案し、それによる生成系を試作してきた。本研究はそれを実用的なシステムに高めることを目的とする。 2.コンパイア生成系の改良 試作ずみの旧版生成系で、ISO規格Pascalの意味解析を記述した所、記述量と属性評価の効率に改善すべき点のあることが判明した。 (1)コピー規則の記述:前述のPascalの記述では、属性評価式の73%がコピー規則であった。そこで、コピー規則を2つの類型に分類し、単純なコピーは「transfer 属性名,…」,縫い糸型のコピーは、「thread 属性名,…」と記述できるようにした。これにより属性評価式の行数が20%減少し、書き易さも大巾に向上した。 (2)局所属性:文法記号ではなく構文規則に付随する属性として局所属性を導入した。これは属性文法の関数性、単一代入性を満たしている。これにより、属性評価式 間の共通部分式の記述が一回ですみ、属性評価の効率も向上する。属性評価式の行数は、7%減少した。 (3)その他:同値類をなす相続属性の指定、文脈条件の記述法も改善し、全体として構文・意味規則部2941行中695行(23%)の減少をみた。 3.今後の課題 記述量については、純粋な属性文法の範囲内でほぼ所期の目的を達成したが、属性評価の効率の向上と、属性文法に基づくコンパイラ開発のためのプログラミング環境の整備が課題である。
|