Исправьте неограниченную грамматику для:

Я не могу понять неограниченную грамматику для

L = (w am bn | w={a,b}* m=number of a's in w n=number of b's in w).

Я построил следующую грамматику для него, но он продолжает отклонять каждую строку, которую я ввожу в JFLAP. Но ручное создание дерева разбора для него не доставляет мне проблем. Кто-нибудь может посмотреть на меня и увидеть, что не так?

S -> AST | BSU | epsilon
UT -> TU
T -> A
U -> B
A -> a
B -> b

1 ответ

Я скачал и использовал JFLAP для вашей грамматики. Я думаю, проблема в том, что вы не использовали нотацию, которую использует JFLAP для ввода грамматики. Он не использовал | символ, но вы должны указать несколько правил. Поэтому в нотации JFLAP (и все еще действительной грамматике) вы должны иметь:

S -> AST 
S -> BSU 
S -> ε
UT -> TU
T -> A
U -> B
A -> a
B -> b

Вам также необходимо установить пустую строку как ε в настройках FLAP. Если вы можете вручную создать дерево разбора, вы также можете сделать это в JFLAP, чтобы показать производные.

Другие вопросы по тегам