我想把语法改成乔姆斯基范式(CNF)。
这是一个例子
S--> AB | ɛ
A--> aASb | a
B--> bS
我试着解决这个问题
S --> [A] [B]
[A] --> [aA] [Sb] | [a]
[aA] --> [a] A
[Sb] --> s [b]
[a] --> a
[b] --> b
我对答案不太确定。谁能告诉我这是对还是错?
发布于 2010-12-14 01:32:32
一个错误是您删除了S --> ɛ
转换。您需要这样做( CNF中特别允许使用S --> ɛ
,尽管AnyNonTerminalOtherThanS --> ɛ
不允许)。
那么规则[A] --> [a]
应该是[A] --> a
,因为如果您在RHS上只有一个条目,那么它必须是一个终端。
[aA] --> [a] A
[Sb] --> s [b]
这两个看起来像是拼写错误,因为A
和s
并不存在。你的意思可能是:
[aA] --> [a] [A]
[Sb] --> [S] [b]
除此之外,你所拥有的都是正确的。
https://stackoverflow.com/questions/4431553
复制相似问题