Каковы шаги процедуры, чтобы найти регулярное выражение, которое принимает тот же язык данной грамматики?
- S --> b | AA
- А --> аА | Абб | ϵ
Каковы шаги процедуры, чтобы найти регулярное выражение, которое принимает тот же язык данной грамматики?
- S --> b | AA
- А --> аА | Абб | ϵ
Я пишу что-то, чтобы попытаться понять (надеюсь, это поможет):
Согласно S --> b
, строка 'b'
является строкой на языке грамматики.
Используя продукцию A
A --> aA | &
, мы можем сгенерировать: " A
, за которым следует любое количество a
", или в RE: a*A
(* из-за эпсилон)
Точно так же, используя A ---> Abb | &
, мы можем сгенерировать «любое количество bb
, за которым следует A
», или в RE: A(bb)*
(* из-за эпсилон)
Используя 2 и 3, используя A
, вы можете сгенерировать: a*(bb)*
Обратите внимание, что в конечном итоге переменная должна быть преобразована в терминал, поэтому A можно преобразовать в a
, bb
или &
.
Из 4, используя AA
, мы можем сгенерировать: a*(bb)*a(bb)*
.
Итак, в языке, порожденном грамматикой, b + a*(bb)*a(bb)*
Для процедуры прочитайте этот ответ: Построение эквивалентной регулярной грамматики из регулярного выражения Я объяснил от RE к грамматике, я чувствую, что ответ поможет вам лучше понять.
it's any number of a s followed by A?
* , 3. it's A followed by any number of bb s?
-- Это просто способ написания -- Но RE должен быть четким. Я думаю, что вы поняли. "Can I start to work with a grammar G1 that is equivalent at the grammar G above with no ϵ-productions?"
Я не понял, что вы подразумеваете под этим, где G1? 4. It will be a*A(bb)* ?
См., используя A, вы генерируете a*A
или A(bb)*
, чтобы преобразовать a*A(bb)*
из сентенциальной формы в форму предложения, вы должны преобразовать A либо в a
, либо в bb
, либо в &
, поэтому в конечном итоге вы получите a*(bb)*
- person Grijesh Chauhan; 02.02.2014
Грамматика:
A --> SA|b
Как я могу получить регулярное выражение, решение для этой грамматики?
Полезны ли эти правила?
S=AS+a;A=SA+b
S=A*a ; A=S*b
Из A=SA+b и S=AS+a
Правильно @GrjeshChauhan ??
According to A --> b, string b is in language of grammar.
, Нет, можно рассматривать только те строки на языке грамматики, которые можно сгенерировать с помощью S
стартовой переменной. Конечно, 'b'
можно сгенерировать с помощью A
, но b
не является частью языка грамматики. наименьшие строки в языке грамматики a
. Второй наименьший может быть либо ba
, либо bb
.
- person Grijesh Chauhan; 02.02.2014