从CFG转换为乔姆斯基范式?

时间:2014-10-20 00:13:51

标签: grammar context-free-grammar chomsky-normal-form

考虑无上下文语法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无效。我怎样才能解决这个问题?感谢您的任何帮助! :)

1 个答案:

答案 0 :(得分:1)

你创造了X吗? 如果是这样,S0-->S是一个更好的主意。然后,要从S的右侧移除S,应该使用非终端。 S0 --> S S --> BS | BSE | s 你想用非终端替换像BS这样的东西: S --> P | PE | s P --> BS 如果你可以指定上下文是什么(对于lambda,以及你为epsilon使用的是什么,我可能会有更多的帮助,但谷歌可以为你找到很多计算理论幻灯片,他们非常有帮助(如果你得到了正确的那些)。