Найдите грамматику для следующего языка:
a*b | a
(a*b | b*a)*
Я думаю, что у меня есть ответ на 1 (S -> aS | b), но я немного запутался во втором. Любая помощь будет принята с благодарностью.
Найдите грамматику для следующего языка:
a*b | a
(a*b | b*a)*
Я думаю, что у меня есть ответ на 1 (S -> aS | b), но я немного запутался во втором. Любая помощь будет принята с благодарностью.
Язык; (а*б | б*а)*
S -> SA | episilon
A здесь представляет (a*b | b*a)
A -> B
A -> C
B представляет (a*b)
B -> [Insert rule here]
C представляет собой (b*a)
C -> [Insert rule here]
Думайте обо всем выражении (a*b | b*a)*
как о нетерминале, а затем рассматривайте каждый элемент (т. е. a*b
— это один, а b*a
— другой) внутри как отдельные нетерминалы.
Намекать:
S -> ε | ST
T -> [rule for a*b] | [rule for b*a]
T
— это то, что находится внутри скобки.