空の文字列のみを含む言語のクラス?


7

L={ϵ}
明らかにこの言語は有限なので、これは通常の言語でなければなりません。
すべての通常の言語は状況依存なので、はCSLです。 我々はのための文法を定義することができます:として 以来今 CSLで、この文法は文脈依存文法でなければなりません。しかし、文脈依存文法の定義から:L
L
Sϵ
L

文脈依存文法とは、各プロダクションの左側が右側より長くない文法です。

しかし、ここ
|S|>|ϵ|
これは矛盾しています。
私はここで何が悪いのか理解できません。

回答:


9

この問題は、ウィキペディアの非契約文法に関する記事で説明されています。このような文法では、空の文字列を導出することはできません。これは、言語考えると問題ありません。空の文字列を許可したい場合は、特別なケースが作成され、ルールが醜いサイド条件で許可されます(は右側に表示できません)。LA+SλS

したがって、状況は、優雅さ、一般性、使いやすさなどの間で異なるトレードオフを提供する、利用可能な、ほとんど同等の定義がいくつかあるということです。これは数学の典型的な状況です。表面をスクラッチすると、さまざまな定義があり、それらには「本質的に非契約」などの追加の用語が付属しています。

これは初心者にはわかりにくいかもしれませんが、重要なことはそれほど重要ではない詳細から分離されていることです。

ところであなたの推論には欠陥があります。言語はCSL(正しい)であり、はその文法(正しい)であり、したがってその文法はCS であると言います。その意味は正しくありません。あなただけが存在することを推測することができ、それのためのCS文法を。しかし、そのような文法には契約ルールが必要だと考えるのは当然です。Sλ

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.