主题
Search

语法


定义形式语言的语法是一个四元组 (N,T,R,S),其中 N 是非终结符的有限集合,T 是终结符的有限集合,R 是产生式的有限集合,而 SN 的一个元素。

终结符集合 TL 的字母表。非终结符是表示语言构造的符号。集合 NT 不应相交。S 被称为起始符号。产生式是以下形式的规则:alpha->beta,其中 alphabeta 都是终结符和非终结符的字符串,alpha 至少包含一个非终结符。

语法 G=(N,T,R,S) 的句型由以下规则定义:S 是一个句型;如果 alphabetagamma 是一个句型,且产生式 beta->delta 属于 R,则 alphadeltagamma 也是一个句型。

L 是由完全由终结符组成的句型构成的所有字符串的集合。对于由语法定义的语言,识别给定的字符串(表达式)是否属于该语言通常是一项非平凡的任务。所有由语法定义的语言都是递归可枚举集合

1. 如果语法 G 的所有产生式都具有 A->alphaBA->alpha 的形式,其中 A,B in Nalpha 是终结符的字符串,则称该语法 G 为右线性语法。

2. 如果语法 G 的所有产生式都具有 A->alpha 的形式,其中 A in Nalpha 是终结符和非终结符的字符串,则称该语法 G 为上下文无关语法。

3. 如果语法 G 的所有产生式都具有 alpha->beta 的形式,其中 alphabeta 都是终结符和非终结符的字符串,且 alpha 的长度不大于 beta 的长度,则称该语法 G 为上下文相关语法。

4. 如果语法 G 不属于类别 1 到 3,则称其为无限制语法。

这种语法层次结构是由 N. 乔姆斯基引入的。由每个类别的语法定义的语言集合是前一个类别的真超集。由类别 1 到 3 的语法定义的语言是递归集合。一个语言可以通过类别 1 的语法定义,当且仅当它可以通过正则表达式定义时。


另请参阅

正则表达式

此条目由 Alex Sakharov 贡献 (作者链接)

使用 Wolfram|Alpha 探索

参考文献

Aho, A. V. 和 Ullman J. D. Theory of Parsing, Translation and Compiling, Vol. 1. Englewood Cliffs, NJ: Prentice Hall, 1972.Aho, A. V. 和 Ullman J. D. Theory of Parsing, Translation and Compiling, Vol. 2. Englewood Cliffs, NJ: Prentice Hall, 1972.

在 Wolfram|Alpha 中引用

语法

请按如下方式引用

Sakharov, Alex. "语法." 来自 MathWorld--Wolfram 网络资源,由 Eric W. Weisstein 创建. https://mathworld.net.cn/Grammar.html

主题分类