📜  语法的Chomsky分类

📅  最后修改于: 2020-11-26 10:11:34             🧑  作者: Mango


根据Noam Chomosky的说法,语法有四种类型-类型0,类型1,类型2和类型3。下表显示了它们之间的区别-

Grammar Type Grammar Accepted Language Accepted Automaton
Type 0 Unrestricted grammar Recursively enumerable language Turing Machine
Type 1 Context-sensitive grammar Context-sensitive language Linear-bounded automaton
Type 2 Context-free grammar Context-free language Pushdown automaton
Type 3 Regular grammar Regular language Finite state automaton

看一下下图。它显示了每种语法的范围-

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语法

类型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语法

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

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

乘积可以采用α→β的形式,其中α是字符串末端和非末端,其中至少有一个非末端, α不能为零。 β是字符串的末端和非末端。

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