找到接受给定语法的相同语言的正则表达式的过程步骤是什么?
- S --> b | AA
- 一个--> aA | 艾伯 | ε
找到接受给定语法的相同语言的正则表达式的过程步骤是什么?
- S --> b | AA
- 一个--> aA | 艾伯 | ε
我正在写一些试图理解的东西(希望它会有所帮助):
根据S --> b,字符串 'b'是语法语言中的字符串。
使用A's 产生 式A --> aA | & ,我们可以生成:“A后跟任意数量的as”,或者在 RE 中:a*A (* 因为 epsilon)
同样,使用 A ---> Abb | & 我们可以生成“任意数量的bbs 后跟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 ??