是否可以将所有上下文无关语法转换为NFA / DFA?

时间:2016-12-13 18:48:24

标签: parsing context-free-grammar dfa nfa

我看过这篇关于如何将无上下文语法转换为DFA的帖子: Automata theory : Conversion of a Context free grammar to a DFA

然而,只是想知道所有上下文无关语法都可以转换为DFA / NFA吗?那些无法表达为正则表达式的上下文无关语法呢?防爆。 S->(S)| ()

谢谢!

1 个答案:

答案 0 :(得分:1)

只有常规语言可以转换为DFA,并非所有CFG都代表常规语言,包括问题中的语言。

所以答案是"没有"。

NFA并不比DFA更具表现力,因此如果您使用NFA替换DFA,上述陈述仍然适用

如果CFG是右线性或左线性的,它代表常规语言。但CFG不是左或右线性这一事实证明什么都没有。例如,S→a | a S a恰好生成与S→a | S a a相同的语言。