【发布时间】:2011-11-19 21:20:52
【问题描述】:
将下面的语法转换为乔姆斯基范式。给出所有中间步骤。
S -> AB | aB
A -> aab|lambda
B -> bbA
好的,我做的第一件事就是添加一个新的开始变量S0
所以现在我有
S0 -> S
S -> AB | aB
A -> aab|lambda
B -> bbA
然后我删除了所有的 lambda 规则:
S0 -> S
S -> AB | aB | B
A -> aab
B -> bbA | bb
然后我检查了不存在的S->S 和A->B 类型规则。这就是我想出的答案,我需要做进一步的事情还是我做错了什么?
【问题讨论】:
-
首先要检查的是,你读过Wikipedia吗?
-
澄清请求:什么是 lambda?是终端符号吗?
-
是的,为什么?我不知道最后一条规则在说什么。 Lambda 是维基百科中的 Epsilon,它变为 null
-
维基百科页面上的第 3 条规则说,只允许开始符号扩展为 epsilon。所以你需要处理你的
A -> ... | lambda/epsilon。 -
对,你做得对。我的错。
标签: grammar context-free-grammar chomsky-normal-form