2016-05-19 7 views
0

私は、生産の与えられたセットから文字列「AABBCCDD」を導出したいと思います:この派生を左端および/または右端として考えることができますか?例えば

S -> AB | C 
A -> aAb | ab 
B -> cBd | cd 
C -> aCd | aDd 
D -> bDc | bc 

私は左端と右端の派生を使ってABから文字列を導出することができます。

しかし、Cについてはどうですか?文字列を派生させると、私は常に1つの変数しか持たない。 Cから

導出:

S -> C 
S -> aCd 
S -> aaDdd 
S -> aabDcdd 
S -> aabbccdd 

導出のどのような種類が使用されたと私はこの文法が曖昧考えることができますか?

+0

テキストを含む画像は使用しないでください。テキストをテキストとして質問に直接貼り付けます。 (書式設定済みのテキストの場合は '{}'コードサンプルボタンを使用するか、各行に4つのスペースをインデントするだけです)。 – rici

答えて

0
  1. 右端の派生では、右端の非終端が導出されます。左端の導出では、左端の非終端が導かれる。非終端記号が1つしかない場合、導出は左端と右端の両方になります。これは矛盾ではありません。

  2. Sで始まるターゲット文字列の派生が2つあるため、文法はあいまいです。

関連する問題