Исправьте неограниченную грамматику для:
Я не могу понять неограниченную грамматику для
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, чтобы показать производные.