我看过这篇关于如何将无上下文语法转换为DFA的帖子: Automata theory : Conversion of a Context free grammar to a DFA
然而,只是想知道所有上下文无关语法都可以转换为DFA / NFA吗?那些无法表达为正则表达式的上下文无关语法呢?防爆。 S->(S)| ()
谢谢!
答案 0 :(得分:1)
只有常规语言可以转换为DFA,并非所有CFG都代表常规语言,包括问题中的语言。
所以答案是"没有"。
NFA并不比DFA更具表现力,因此如果您使用NFA替换DFA,上述陈述仍然适用
如果CFG是右线性或左线性的,它代表常规语言。但CFG不是左或右线性这一事实证明什么都没有。例如,S→a | a S a
恰好生成与S→a | S a a
相同的语言。