乔姆斯基语法分类


根据诺姆·乔莫斯基 (Noam Chomosky) 的说法,语法有四种类型 - 类型 0、类型 1、类型 2 和类型 3。下表显示了它们之间的区别 -

语法类型 语法已接受 接受语言 自动机

0型 不受语法限制 递归可枚举语言 图灵机
类型1 上下文相关语法 上下文相关语言 线性有界自动机
2型 上下文无关语法 上下文无关语言 下推自动机
3型 正则语法 常规语言 有限状态自动机

看看下面的插图。它显示了每种语法类型的范围 -

Type3、Type2、Type1、Type0 的收容

类型 - 3 语法

Type-3 语法生成常规语言。类型 3 语法必须在左侧有一个非终结符,右侧必须包含一个终结符或单个终结符后跟一个非终结符。

产品必须采用X → a 或 X → aY 的形式

其中X, Y ∈ N(非终结符)

a ∈ T(终端)

如果S没有出现在任何规则的右侧,则规则S → ε是允许的。

例子

X → ε 
X → a | aY
Y → b 

类型 - 2 语法

Type-2 语法生成上下文无关语言。

产生式必须采用A → γ的形式

其中A ∈ N(非终结符)

γ ∈ (T ∪ N)*(终结符和非终结符串)。

由这些语法生成的这些语言由非确定性下推自动机识别。

例子

S → X a 
X → a 
X → aX 
X → abc 
X → ε

类型 - 1 语法

Type-1 语法生成上下文相关语言。作品必须采用以下形式

α A β → α γ β

其中A ∈ N(非终结符)

α, β, γ ∈ (T ∪ N)*(终结符和非终结符串)

字符串αβ可以为空,但γ必须非空。

如果 S 没有出现在任何规则的右侧,则规则S → ε是允许的。这些语法生成的语言由线性有界自动机识别。

例子

AB → AbBc 
A → bcA 
B → b 

类型 - 0 语法

Type-0 语法生成递归可枚举语言。制作没有任何限制。它们是任何阶段结构语法,包括所有形式语法。

它们生成图灵机可以识别的语言。

产品可以采用α → β的形式,其中α是一串终结符和非终结符,其中至少有一个非终结符,并且α不能为空。β是一串终结符和非终结符。

例子

S → ACaB 
Bc → acB 
CB → DB 
aD → Db