我需要帮助解决CNF的语法:S->SS|(S)|e
我看了将它送到CNF的步骤,但我的问题是如何解决它的语法与()因为语法变得非法
任何人。
答案 0 :(得分:0)
这应该是CNF中的等效语法:
S -> SS|CB|e
A -> (
B -> )
C -> AS
语法S -> SS|(S)|ε
的修改 CNF的第一步是删除ε(简化以删除冗余规则)
S -> SS|S|(S)|()
下一步是删除单位制作。在这种情况下,您只有一个生产规则,因此我们可以放弃UP,因为它只会添加冗余规则。
S -> SS|(S)|()
最后一步是添加生产规则以遵守CNF(单个终端或正好2个变量):
S -> SS|CB|AB
A -> (
B -> )
C -> AS
请记住,CNF会从语法生成的语言中删除“ε”。否则语法等同于原文。