2012-02-08 15 views
2

私が読んできたことは、CFGの左回帰規則が無限に横断し、右回帰規則に変換するプロセスを示し、アルファとベータの表現を使ってこれを行うことです複数の非端末(私はその部分が正しいと思う)。だから私の心の中でLLパーサーを扱うとき、再帰的なルール=不良を残しました。文脈自由文法の左回帰規則

残った再帰的なルールが許容されるか望ましいかという状況はありますか?そうでない場合、なぜ正しい逆帰規則の「逆」(軽く使われる項)を記述するために、誤った設計や用語から左回帰規則が存在するのはなぜですか?

これは技術的な質問ではありませんが、私のクラスに関連しています。

答えて

3

あなたの質問の鍵は、LLパーサーを扱うときに残った再帰的ルールが悪いことです。 LRパーサーを使用している場合は、文法がはるかに明確になることがよくあります。標準的な発現文法明確に再帰的な左が、その右再帰的な変種よりも読みやすいです

E : E + T | T 
T : T * F | F 
F : number | (E) 

例えばかかります。問題のパーサが元の文法を扱うのに問題がない場合、この文法を因数分解して右回帰的であるとは考えられません。

この場合、対応するLL互換文法のようなイプシロン規則を必要としない文法を持つという利点もあります。

+0

これは多くをクリアします。 ** LLパーサを扱うときは**のみ。 –

関連する問題