我刚刚了解到,Regular Grammars有相应的Finite State Acceptors,这将对应于Regular Expressions。
是否有与Context Free Grammars等效的转换?据我所知,上下文无关语法可以用Push Down Automata来表示,而这又对应于什么呢?
感谢那些能让我摆脱这一切的人。
发布于 2014-02-02 15:07:53
事实上,答案可能仍然是"Regex“。
现代的regex方言,特别是那些支持递归的方言(如PHP、Perl、.NET、JGSoft等) 完美地处理上下文无关的语言。。
发布于 2014-02-02 15:33:33
现代编程语言本身在很大程度上是由上下文无关语法描述的。虽然理论上短语结构语法是最强大的(英语就是一个例子),但是对于用计算机解决问题,上下文无关文法和强大的记忆模型(变量)是足够的。接受这些上下文无关语言的程序是现代语言解析器。
示例语言BNF
由于BNF是上下文无关的,可以自动生成解析器,当然,最著名的例子是雅克 --自创建野牛以来,其他的例子都是为创建gcc而创建的。现在有许多解析器生成器,其输出是用一种流行语言编写的解析器。
https://stackoverflow.com/questions/21511958
复制相似问题