PEGをBNFに変換


7

解析式文法(PEG)は明確であり、表面的にはBNFに類似した構文を持っていますが、3つの重要な違いがあります。

  1. 順序付き選択演算子e1 / e2 / e3
  2. と述語&
  3. not演算子!

少し質問があります:

  1. PEGによって認識される言語はすべて文脈自由ですか?
  2. (1)の答えが「いいえ」の場合、明確な文法のみを生成することが保証された表現力のある文法形式はありますか?特に、ドロップ&!てコンテキストフリーの文法のみを生成するでしょうか?
  3. すべてのPEGがコンテキストフリーである場合、アルゴリズムを介して同等の BNF に変換できますか?

コンテキストは、Chomsky–Schützenberger列挙定理を使用して、PEGライブラリの生成関数を計算したいということです。これには、BNFに類似した標準形式での文法の仕様が必要と思われます。

回答:


6
  1. PEGによって認識される言語はすべて文脈自由ですか?

いいえ、ブライアンフォードがPEGを紹介する2004年の論文で指摘したように、そこから次の短い引用があります。

定理: PELのクラスには、非コンテキストフリー言語が含まれます。

証明:古典的なサンプル言語anbncn コンテキストフリーではありませんが、PEGで認識できます G=({A,B,D},{a,b,c},R,D)ここで、Rには次の定義が含まれます:

AaAb/ε
BbBc/ε
D&(A!b)aB!.

 

  1. (1)の答えが「いいえ」の場合、明確な文法のみを生成することが保証された表現力のある文法形式はありますか?特に、と文脈自由文法のみを生成しますか?&!

なくても(したがって、正式には定義されているため、なくても)、順序付けされた選択肢の定義に隠された暗黙の補完を処理する必要があります。非CFLにつながる順序付けされた選択の具体的な例はありませんが、違いがCFLではなく、PEGと変換できる2つのCFGとから始めて、1つを見つけようとします。ここで、がどちらの言語でもないシンボルである場合、PEGは、CFLではないを認識します。!&!L1L2P1P2cP2/P1cL2L1L2c

  1. すべてのPEGがコンテキストフリーである場合、アルゴリズムを介して同等のBNFに変換できますか?

上記の私の推測が正しい場合、この質問は当てはまりませんが、どの場合でも、PEGとCFGの間で変換するために知っているアルゴリズムはなく、PEGとCFGの同等性は決定できないと思います。この事実は、上で提案した証明手順を複雑にします。:)


例に従っているのかません。論文から「PEGは優先順位付けされた選択演算子 '/'を使用します。この演算子は、最初に成功した一致を無条件に使用して、順番にテストされる代替パターンをリストします。」を含むすべての文字列は最初の条件を満たさないため、認識される言語はであり、明らかにコンテキストフリーです。P1/P2CCL1L2C
再帰的にIronic 2017

「PEGとCFGの同等性は決定不可能だと私は信じています」おそらくそれは事実ですが、無関係です。多くの手続きは、任意の文法の同等性を決定できない場合でも、同等の仕様を生成します(たとえば、チョムスキー正規形への変換)。
再帰的

1
@再帰的に:それはPEGの順序付き選択が機能する方法ではありません。へのフォールバックは、が一致しない場合にのみ発生します。一致する場合、その後パターンが失敗しても、フォールバックは発生しません。順序付けされた選択は、解析を明確にする方法ではありません。L2cL1
rici

1
ああ、TIL。その言語はそうではないでしょうL1(L2L1)c?いずれにせよ、あなたの根底にある点は正しいと思われるので、チョムスキー・シュッツェンベルガーの定理は適用されません。CFGに基づくより標準的な解析ライブラリをサポートするようにプロジェクトを切り替える必要があります。ありがとう!
再帰的にIronic 2017

@RecursivelyIronic:はい、そうです、私はそれをセット差として書いておくべきでした、そして私は答えを修正しました。ありがとう。(私は個人的にはPEGセマンティクスを推測するのは難しいと思いますが、その一部は経験の欠如です。それはすべて非常に循環的です。しかし、文法を分析または変換する必要があるコンテキストでは正確に使用しません。 PEG文法の分析や変換の難しさ。)
rici
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.