- PEGによって認識される言語はすべて文脈自由ですか?
いいえ、ブライアンフォードがPEGを紹介する2004年の論文で指摘したように、そこから次の短い引用があります。
定理: PELのクラスには、非コンテキストフリー言語が含まれます。
証明:古典的なサンプル言語aんbんcん コンテキストフリーではありませんが、PEGで認識できます G = ({ A 、B 、D } 、{ a 、b 、c } 、R 、D )ここで、Rには次の定義が含まれます:
A ← a A b / ε
B ← b B c / ε
D ← &(A !b )a∗B !。
- (1)の答えが「いいえ」の場合、明確な文法のみを生成することが保証された表現力のある文法形式はありますか?特に、と文脈自由文法のみを生成しますか?&!
なくても(したがって、正式には定義されているため、なくても)、順序付けされた選択肢の定義に隠された暗黙の補完を処理する必要があります。非CFLにつながる順序付けされた選択の具体的な例はありませんが、違いがCFLではなく、PEGと変換できる2つのCFGとから始めて、1つを見つけようとします。ここで、がどちらの言語でもないシンボルである場合、PEGは、CFLではないを認識します。!&!L1L2P1P2cP2/P1cL2∪ (L1−L2)c
- すべてのPEGがコンテキストフリーである場合、アルゴリズムを介して同等のBNFに変換できますか?
上記の私の推測が正しい場合、この質問は当てはまりませんが、どの場合でも、PEGとCFGの間で変換するために知っているアルゴリズムはなく、PEGとCFGの同等性は決定できないと思います。この事実は、上で提案した証明手順を複雑にします。:)