バイソンの使い方を自分で教えようとしています。manson bison(1)はbisonについて述べています:
LALR(1)、IELR(1)、または標準のLR(1)パーサーテーブルを使用して、決定性LRまたは汎用LR(GLR)パーサーを生成します。
IELRパーサーとは何ですか?World Wide Webで見つけた関連記事はすべて有料です。
バイソンの使い方を自分で教えようとしています。manson bison(1)はbisonについて述べています:
LALR(1)、IELR(1)、または標準のLR(1)パーサーテーブルを使用して、決定性LRまたは汎用LR(GLR)パーサーを生成します。
IELRパーサーとは何ですか?World Wide Webで見つけた関連記事はすべて有料です。
回答:
IELR(1)構文解析アルゴリズムは、ジョエル・E.デニーによって2008年に開発された博士号の一部として、クレムソン大学のブライアンA.マロイの監督下で研究。IELR(1)アルゴリズムは、1977年にDavid Pagerによって開発されたいわゆる「最小」LR(1)アルゴリズムのバリエーションであり、1965年にDonald Knuthによって発明されたLR(k)解析アルゴリズムのバリエーションです。IELR(1)のIEは、不適切な除去を表します(最後のセクションを参照)。
LR(1) IELRの部分(1)を表し、Lは、右へEFT R 1つの先読みトークンで導出ightmost。LR(1)パーサーは、正規パーサーとも呼ばれます。このクラスの解析アルゴリズムは、解析中に実行する次のアクションを決定するスタックおよび状態遷移テーブルを備えた、ボトムアップのシフト削減解析戦略を採用しています。
歴史的に、LR(1)アルゴリズムは、遷移テーブルに大量のメモリを必要とするという欠点がありました。Pagerの改善点は、遷移テーブルの生成時に遷移状態を結合する方法を開発し、テーブルのサイズを大幅に縮小することでした。このように、Pagerのアルゴリズムにより、LR(1)パーサーは、空間と時間の効率に関して他の解析戦略と競合するようになります。「minimal LR(1)parser」というフレーズは、Pagerのアルゴリズムによって導入された遷移テーブルの最小サイズを指します。
最小のLR(1)アルゴリズムは、解析する言語の特定の入力文法に基づいて遷移表を作成します。異なる文法で同じ言語を生成できます。確かに、非LR(1)文法がLR(1)解析可能言語を生成することは可能です。実際には、LR(1)パーサージェネレーターは、この事実に対応するために、2つの状態遷移( "shift-reduce conflicts")の競合を解決する仕様を持つ非LR(1)文法を受け入れます。DennyとMalloyは、非LR(1)文法がLR(1)言語を生成しても、特定の非LR(1)文法を提供した場合、PagerのアルゴリズムがLR(1)言語を解析するのに十分な強力なパーサーを生成できないことを発見しました。
DennyとMalloyは、広く使用されている成熟したソフトウェアであるGawkとGpicが誤ったパーサーアクションを実行することを示すことにより、この制限が単なる学術的ではないことを示しています。
DennyとMalloyは、Pagerのアルゴリズムによって生成された遷移表を同等のLR(1)文法の遷移表と比較することにより、Pagerの欠陥の原因を研究し、Pagerの遷移表に現れる不適切と呼ぶ2つの原因を特定しましたアルゴリズム。ただし、LR(1)遷移表には含まれません。Denny and MalloyのIELR(1)(Inadequacy Elimination LR(1))アルゴリズムは、ページャーのアルゴリズムとほぼ同じサイズの遷移テーブルを生成する際にこれらの不備を解消するように設計されたアルゴリズムです。
導入を主張する記事:IELR(1):Practical LR(1)Parser Tables for Non-LR(1)Grammerrs with Conflict Resolution(via archive.org) by Joel E. Denny and Brian A. Malloy、Clemson University 、Malloyのサイトから無料で入手できます。
それらの価値は私が答えられないものです。(個人的に、このような不自由なCFG解析の必要性を理解していません-GLRを使用するだけで表現力を制限するのはなぜですか?私にとって理にかなっているのは、TAGやPEG(自然に見える、表現力を追加する)またはツリーです文法(XMLなどの言語の場合、解析ツリーの認識は設計上問題ありません。)