Regex 正则表达式表示常规语法,而____;表示上下文无关语法

Regex 正则表达式表示常规语法,而____;表示上下文无关语法,regex,grammar,context-free-grammar,automata,pushdown-automaton,Regex,Grammar,Context Free Grammar,Automata,Pushdown Automaton,我刚刚了解到,正则语法有其相应的有限状态接受器,它将对应于正则表达式 与上下文无关语法是否存在等价的转换?据我所知,上下文无关语法可以用下推自动机来表示,而下推自动机又对应于什么 感谢所有能让我摆脱这一切的人。来自: 上下文无关语法的一种流行符号是 …就像正则表达式是常规语法的符号一样。来自: 上下文无关语法的一种流行符号是 …正如正则表达式是常规语法的符号一样。事实上,答案仍然可能是“正则表达式” 现代正则表达式方言,特别是那些支持递归的语言(如PHP、Perl、.NET、JGSoft等)。事

我刚刚了解到,
正则语法
有其相应的
有限状态接受器
,它将对应于
正则表达式

上下文无关语法
是否存在等价的转换?据我所知,上下文无关语法可以用
下推自动机来表示,而下推自动机又对应于什么

感谢所有能让我摆脱这一切的人。

来自:

上下文无关语法的一种流行符号是

…就像正则表达式是常规语法的符号一样。

来自:

上下文无关语法的一种流行符号是


…正如正则表达式是常规语法的符号一样。

事实上,答案仍然可能是“正则表达式”


现代正则表达式方言,特别是那些支持递归的语言(如PHP、Perl、.NET、JGSoft等)。

事实上,答案仍然可能是“正则表达式”


现代regex方言,特别是那些支持递归的语言(如PHP、Perl、.NET、JGSoft等)。

现代编程语言本身大部分由上下文无关语法描述。虽然理论上短语结构语法是最强大的(英语就是一个例子),但已经发现,对于解决计算机问题,上下文无关语法与强大的内存模型(变量)相结合就足够了。接受这些上下文无关语言的程序是现代语言解析器

一些示例语言BNF

鉴于BNF是上下文无关的,解析器可以自动生成,最初也是最著名的例子当然是自创建gcc以来就已经创建了其他解析器。现在有许多语言的输出是用一种流行语言编写的解析器。

现代编程语言本身在很大程度上是由上下文无关语法描述的。虽然理论上短语结构语法是最强大的(英语就是一个例子),但已经发现,对于解决计算机问题,上下文无关语法与强大的内存模型(变量)相结合就足够了。接受这些上下文无关语言的程序是现代语言解析器

一些示例语言BNF

鉴于BNF是上下文无关的,解析器可以自动生成,最初也是最著名的例子当然是自创建gcc以来就已经创建了其他解析器。现在有很多人的输出是用一种流行语言编写的解析器。

问题的措辞有问题,因为它指的是语法,而不是语言

是一个可以通过并集、连接和闭包操作在集合上定义的集合。和都是表示正则语言的方便方法


问题是,它被定义为被a接受的语言,因此OP问题的答案在语言类别定义本身之内。

问题的措辞存在问题,因为它指的是语法,而不是语言

是一个可以通过并集、连接和闭包操作在集合上定义的集合。和都是表示正则语言的方便方法


问题是,它被定义为a所接受的语言,因此OP问题的答案在语言类别定义本身之内。

事实上,BNF可能是等效的。但它也能成为正则表达式吗@Tim提到它在某种程度上仍然可以是正则表达式。好吧,一些上下文无关的语法也是正则的,所以至少这些可以表示为正则表达式:-)Tim提到的不是来自计算机科学的“理论”正则表达式,但是正则表达式引擎的实现往往具有常规语言以外的特性,甚至递归,这确实使它们与任何上下文无关的语言相匹配。然而,随着复杂性的增加,正则表达式变得不可用,根据要提取的信息,基于堆栈的解析器通常是更好的选择,BNF可能是等效的。但它也能成为正则表达式吗@Tim提到它在某种程度上仍然可以是正则表达式。好吧,一些上下文无关的语法也是正则的,所以至少这些可以表示为正则表达式:-)Tim提到的不是来自计算机科学的“理论”正则表达式,但是正则表达式引擎的实现往往具有常规语言以外的特性,甚至递归,这确实使它们与任何上下文无关的语言相匹配。然而,随着复杂性的增加,正则表达式变得不可用,根据要提取的信息,基于堆栈的解析器通常是更好的选择。我想叫他们“真实世界的正则表达式”。哈哈哈。我想称之为“真实世界的正则表达式”。