找到接受给定语法的相同语言的正则表达式的过程步骤是什么?
- S --> b | AA
- 一个--> aA | 艾伯 | ε
找到接受给定语法的相同语言的正则表达式的过程步骤是什么?
- S --> b | AA
- 一个--> aA | 艾伯 | ε
我正在写一些试图理解的东西(希望它会有所帮助):
根据S --> b
,字符串 'b'
是语法语言中的字符串。
使用A
's 产生 式A --> aA | &
,我们可以生成:“A
后跟任意数量的a
s”,或者在 RE 中:a*A
(* 因为 epsilon)
同样,使用 A ---> Abb | &
我们可以生成“任意数量的bb
s 后跟A
”,或者在 RE: A(bb)*
(* 因为 epsilon)
使用 2 和 3A
可以生成: a*(bb)*
请注意,最终变量必须转换为终端,因此 A 可以转换为a
,bb
或&
。
从 4 开始,使用 AA
我们可以生成: a*(bb)*a(bb)*
.
所以在语法生成的语言中是b + a*(bb)*a(bb)*
对于程序,请阅读此答案:Constructing an equivalent Regular Grammar from a Regular Expression我从 RE 到语法的解释,我觉得该答案将帮助您更好地理解。
语法:
A --> SA|b
我怎样才能达到这个语法的正则表达式和解决方案?
这些规则有用吗?
S=AS+a;A=SA+b
S=A*a ; A=S*b
从 A=SA+b 和 S=AS+a
正确@GrijeshChauhan ??