考虑无上下文语法G =({S,B,E},{0,1,i,e,s},R,S),其中R是:
S --> iBSE | s
B --> 0 | 1
E --> lambda | eS
好的,所以我删除了lambda并得到了:
S0 --> S
S --> iBS | iBSE | s
B --> 0 | 1
E --> eS
现在我试图删除单位/连锁规则和其他规则,这就是我到目前为止所做的:
S0 --> X
X --> YS
S --> BS
S --> BSE
S --> s
B --> 0
B --> 1
E --> ZS
Y --> i
Z --> e
但我知道S0 - > X和S - > BSE无效。我怎样才能解决这个问题?感谢您的任何帮助! :)
答案 0 :(得分:1)
你创造了X吗?
如果是这样,S0-->S
是一个更好的主意。然后,要从S的右侧移除S,应该使用非终端。
S0 --> S
S --> BS | BSE | s
你想用非终端替换像BS这样的东西:
S --> P | PE | s
P --> BS
如果你可以指定上下文是什么(对于lambda,以及你为epsilon使用的是什么,我可能会有更多的帮助,但谷歌可以为你找到很多计算理论幻灯片,他们非常有帮助(如果你得到了正确的那些)。