EPALはパリンドロームの言語でもあり、次の明確なコンテキストフリーの文法によって生成される言語として定義されています。
EPALは、多くの解析アルゴリズムの「悩みの種」です。言語を記述する文法を解析できる明確なCFGの解析アルゴリズムにはまだ出会っていません。特定のパーサーでは解析できない明確なCFGがあることを示すためによく使用されます。これは私の質問に影響を与えました:
EPALで動作する明確なCFGのみを受け入れる解析アルゴリズムはありますか?
もちろん、言語を線形時間で解析するグラマー用のアドホック2パスパーサーを設計できます。EPALを念頭に置いて特別に設計されていない解析メソッドに興味があります。
1
私は尋ねることをほとんど恐れています:再帰降下によるLL(1)の何が問題になっていますか?
—
ラファエル
言語はどのkに対してもLL(k)ではないため、非バックトラッキングの再帰降下はEPALを処理できません。バックトラッキングを使用した再帰降下は、時間で文法を処理できますが、これは指数関数的な最悪の場合の動作を伴う一般的なアルゴリズムであり、私が探しているものではありません。
—
アレックス10ブリンク
@Victor:バックトラッキングは、特定の文法ではなく、一部の文法で指数関数的な動作をします。それでも、それはあいまいな文法で機能するアルゴリズムであるため、私の質問への答えとしてそれを割引きます。
—
アレックス10ブリンク
@jmad:私の意図は言語を解析することではなく(線形時間で簡単にできます)、むしろ私の好奇心を満たすためです:解析メソッドで解析できない言語の例として使用されているのを見てきました何回も認識している解析メソッドがあるかどうか興味があります。
—
アレックス10ブリンク