意味情報を利用したLL(1)構文解析の一手法
スポンサーリンク
概要
- 論文の詳細を見る
文脈自由文法に意味規則を付加した属性文法は、コンパイラの仕様記述に向いており、コンパイラ生成系への応用が広く研究されてきた。属性文法を用いたコンパイラの記述では、その記述量などが問題となったが、属性文法の生成規則に正規右辺文法を用いる正規右辺属性文法が提案され、記述法の改善が試みられている。正規右辺属性文法では、正規表現を使用することにより、構文規則の記述がコンパクトになり、記述の読解性が良い。また文法がELL(1)文法である場合、効率の良い再帰降下型の構文解析器をつくることができる。しかし、LL(1)文法は決定性文法であり、左から右に下降型解析しながらただ1つの先読み記号で正しい選択肢を選べなくてはならない。一般のプログラミング言語の多くはこの条件に抵触する部分があるので、再帰降下型の構文解析をするためには、構文規則の書換えを必要とし、読解性を非常に悪くする。この問題の多くは、意味情報を用いて解析を行なえば構文解析の書換えをせずに解決できる。正規右辺文法で属性文法をわかりやすい表現にする為に、文法記号(非終端記号、または終端記号)に附属して属性情報や意味規則を記述することを我々は考えている。さらい、その記述を構文解析にも利用することを考えた。そこで、我々は正規右辺属性文法に意味情報を反映する属性を付加することを提案し、その属性を用いて構文解析する(attribute-directed-parsing)構文解析器を生成系の試作を行なっている。意味規則はLL構文解析と親和性の高いL属性文法を基本とし、右から左へ属性値が決定するようなL属性でないものも扱える1バス型属性文法用いている。本論文では、属性条件指示の記述方法と、その文法記述をもとにattribute-directed-parsingを行なう構文解析器の生成、解析処理方法について述べる。
- 一般社団法人情報処理学会の論文
- 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構文解析法