拡張1パス型属性文法の提案
スポンサーリンク
概要
- 論文の詳細を見る
文脈自由文法に意味規則を付与した属性文法はコンパイラの仕様記述に向いており、また、比較的効率の良い属性評価器が得られることよりコンパイラ生成系への応用が広く研究されてきた。属性評価器の自動生成にあたっては効率良く、また、効率の良い属性評価器を生成することが問題とされてきたが、これは正Knuthが提案した属性文法の部分クラスを定義することで解決が試みられ、その結果、実用的な属性評価器の自動生成系が得られるようになった。その一方で、属性文法の記述量が問題となり、記述量を少なくするために記述法を改善する試みがなされた。その1つとして、属性文法の生成規則に正規右辺文法を用い、更にその正規表現に対応した形で属性評価規則にも正規表現を許した正規右辺属性文法が提案された。しかし、その問題点は右辺に不定個数現れる得る構文要素に対応する意味規則を独立に書くことが難しいという点である。我々は正規右辺文法の中に簡潔な表現の意味規則を埋め込み、分かり易い記述で効率の良い1パスコンパイラを生成するコンパイラ生成系を考案した。構文規則は構文解析誌との対応が容易なLL(1)文法を、意味規則はLL構文解析と親和性の高いL属性文法を基本とし、これを拡張した。L属性文法は左から右へと属性評価を行なえる1パス可能な属性文法でその記述は比較的分かり易い。しかし、意味規則を素直に表現しようとすると属性値が右から左に決まる形になることが多い。それをL属性文法の範囲で記述するためには構文規則の書換えなどが必要になる。そう言った場合でも、もとの右から左に属性値が決まる表現のままで1パスで評価をする方法を考案した。本論文では、本システムで用いる属性評価規則の記述方法と1パスで評価する方法について述べる。以下、2節で本システムで用いる意味評価規則の記述方法について述べ、3節で簡単な生成規則例を用いてL属性でないものを1パスで評価する方法について4節では従来の1パス型属性文法ではうまく表現できない場合の拡張した属性評価の方法について述べる。
- 一般社団法人情報処理学会の論文
- 1992-09-28
著者
関連論文
- 超並列計算機用NCX言語処理系の試作
- データ並列言語NCXの分散メモリMIMD並列計算機用コンパイラ
- 疎行列演算プログラムの並列化の一方法
- 構文エラーの自動リカバリシステムの評価
- 拡張1パス型属性文法に基づくコンパイラ生成系の実現
- 属性値主導型 拡張LL(1)文法の提案
- 属性文法を基にした制御系向け仕様記述のビジュアル化
- レジスタ割付からみたスライドウインドウアーキテクチャの優位性について
- スライドウインドウを考慮したレジスタ割付
- 条件分岐を考慮したループ並列化の1手法
- 属性文法に基づいたインクリメンタルなPascal-Sコンパイラ
- インクリメンタルなLR構文解析の一方式の提案とその評価
- インクリメンタルなLR構文解析器におけるエラー処理方式の提案
- 拡張1パス型属性文法によるコンパイラ生成系の実現
- 拡張1パス型属性文法の提案
- 意味情報を利用したLL(1)構文解析の一手法
- 拡張LL(1)パーサ生成系の提案
- 1パス型属性文法におけるバックパッチ処理の自動生成
- データ並列型言語NCXにおける通信コストと仮想プロセッサマッピング
- スライドウィンドウを考慮したレジスタ割り付け
- ソフトウェアの科学
- 時相属性文法を用いたユーザインタフェース記述のX-Windowへの適用
- 演算子順位を利用した再帰的下向き構文解析器生成系の実現
- 多次元文脈自由文法とそのLLおよびLR構文解析法