2011-09-26 10 views
12

これは私が間違って答えた宿題割り当ての問題でした。私は与えた:ルールS-> Sで空集合を受け入れる文法

S -> '' 

意味は、Sが空の文字列を生成することを意味する。私は空のセットと空の文字列が同じではないことを知っています。私の教授によると、答えは次のとおりです。

S -> S 

は今、その答えは私には奇妙に思える:それを終了することはありません

  1. 1つの言語がないためあまり言語ではありません。

私は厳密には数学的な観点から理解していますが、2番目の数字はどこにもつきません。しかし、言語が終了する必要がありますか?永遠に続くことができる言語を持つことは大丈夫ですが、決して終わらないものは間違って聞こえるので、誰かがそれが言語要件であるかどうかを知っていれば尋ねると思っていました。 Formal Grammar Wikipedia pageから

+1

私はこの質問がcstheory.stackexchange.comに適していると思います。 – jwodder

+0

S:= Sは1つの正解です。明らかに、無限に多くの文法が空の言語を生成します。文法の定義のどの部分がこの文法に違反していますか?なし... – Patrick87

+0

@ Patrick87私はそれが終了することができなければならないと述べている部分がありますか?それは質問の全体の前提です! –

答えて

10

L(G)として示されるGの言語は、開始シンボルS.

からステップ有限数に誘導することができるすべてのこれらの文章のように定義されます

Sから始まり、Sに1回のプロダクションルールを適用すると、Sが与えられます。ルールを2回適用すると、Sが与えられます。誘導によって、任意の有限数を適用すると、Sが得られます。言語が空であるため、教授は正しいです。

空のセットを受け入れる文法を定義する別の方法は、L(G) = {}(言語は空)またはP = {}(プロダクションルールのセットは空)です。

+0

質問に答えられないと思われる回答は受け入れる必要はありません。あなたがより良い品質の答えをしたい場合は、賞金を試すことができます。 –

+1

この回答の唯一の悪い点は、無関係の情報で少しぶつかってしまうことです。答えは絶対に正しいです:あなたの教授は明白であり、彼は空の言語を生成するための明白な一連の制作物です。この回答を受け入れても受け入れなくても、数学は変わりません。 – Patrick87

+0

@リー:彼はあなたに良い答えを与えました:空の文法です(つまり、プロダクションルールはまったくありません)。 – Nemo

関連する問題