私の本は、正規文法と正規言語について似ていますが、わずかに異なる説明をしています。私はそれが間違っているとは思いませんが、正規言語は正規文法と同じものですか?私の本の定義は次のとおりです。すべてのプロダクションがV->aWまたはV->Waであり、V、W非終端記号または終端記号、「a」終端記号が付いている場合、文法は正規文法です。Wは空でも同じでもかまいません。 Vの。
3 に答える
正規文法と正規言語は2つの異なる用語です。
- 言語は、終端記号の有効なシーケンスの(おそらく無限の)セットです。
- 文法は、どれが有効なシーケンスであるかを定義します。
同じ言語を異なるクラスの文法(通常、文脈自由など)で表すことができます。言語は、正規文法で表現できる場合、正規であると言われます。一方、正規文法は常に正規言語を定義します。あなたが投稿したのは、正規文法の定義です。
詳細については、このウィキペディアの投稿を参照してください。
形式文法は一連の規則ですが、形式言語は一連の文字列です。
正規文法は、正規言語を記述する正式な文法です。
ウィキペディアによると:
[T]彼は正規文法を残して、正確にすべての正規言語を生成します。正しい正規文法は、そのようなすべての言語の逆、つまり、まさに正規言語を記述します。
左規則と右規則の規則の混合が許可されている場合でも、線形文法がありますが、必ずしも規則的な文法である必要はありません。
上記では、左レギュラールールはフォームのルールですV->Wa
(右レギュラー、フォームのV->aW
)。
aとの違いを説明するlanguage
とgrammar
、クエリは自動的に解決されると思います。
Aは、言語を生成するために使用されるlanguage
、文法としてエンコードされた特定のルールを満たすアルファベットのセット上の文字列のセット
です。Grammars
したがって、基本的grammars
に文字列の構文規則を示し、文法の開始記号で生成できる文字列のセットは、のと呼ばれますLanguage
。grammar