📅  最后修改于: 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 |
看一下下图。它显示了每种语法的范围-
Type-3语法生成常规语言。类型3语法的左侧必须有一个非终结符,而右侧必须有一个非终结符,由一个终结符或一个终结符组成。
乘积必须为X→a或X→aY的形式
X,Y∈N (非终端)
和a∈T (终端)
如果S没有出现在任何规则的右侧,则允许规则S→ε 。
X → ε
X → a | aY
Y → b
类型2语法生成上下文无关的语言。
生产形式必须为A→Î
其中A∈N (非终端)
和∈(T∪N)* (终端和非终端的字符串)。
由这些语法生成的这些语言可以由非确定性下推自动机识别。
S → X a
X → a
X → aX
X → abc
X → ε
Type-1语法生成上下文相关的语言。作品必须采用以下形式
αAβ→αγβ
其中A∈N (非末端)
和α,β,δ∈(T∪N)* (终端和非终端的字符串)
字符串α和β可以为空,但γ必须为非空。
如果S没有出现在任何规则的右侧,则允许规则S→ε 。这些语法生成的语言由线性有界自动机识别。
AB → AbBc
A → bcA
B → b
0型语法生成递归可枚举的语言。生产没有限制。它们是任何阶段结构语法,包括所有形式语法。
它们生成图灵机可以识别的语言。
乘积可以采用α→β的形式,其中α是字符串末端和非末端,其中至少有一个非末端, α不能为零。 β是字符串的末端和非末端。
S → ACaB
Bc → acB
CB → DB
aD → Db