2016-12-13 11 views

答えて

1

通常の言語のみがDFAに変換され、すべてのCFGが通常の言語を表すわけではありません。

したがって、答えは「いいえ」です。

のNFAはのDFAよりも表現力はないので、あなたはそれが右または左線形である場合

A CFGは正規言語を表しNFAとDFAを置き換える場合は、上記の文はまだ本当だろう。 CFGが左または右リニアでないという事実だけでは何も証明されません。たとえば、S→a | a S aは、S→a | S a aと同じ言語を生成します。

+0

http://hackingoff.com/images/basic-bottom-up-parser/2016-12-13_18-37-59_-0800-dfa.svgちょうどこれを見て、今少しLRのDFAについて混乱させる0)パーサ。 DFA for LR(0)パーサーは文脈自由文法の変換ですか?それとも、LR(0)パーサー(複数の仕上げ状態)を構築するのに役立つのでしょうか? – ssssay

+0

@ssssay:このページではDFAとしてのグラフについて説明していますが、LRパーサを駆動するのは実際にはF(有限)ではないPDA(プッシュダウンオートマトン)です。プッシュトランジションは表示されず、「受け入れ」状態は実際にはポップトランジション(ポップトランジションはスタックの内容に依存するためグラフ化できません)です。そうであることは容易にわかります。そのマシンを使用して実際に入力を処理するだけです。 (また、すべてのCFGがLR(0)またはLR(k)であるとは限りません)。 – rici

関連する問題