Chomsky文法体系分类

简介:

文法是用来定义语言的一个模型,常用的文法体系为Chomsky文法体系。

文法定义

文法G(Grammar)是一个四原组,G=(N,T,P,S),N(Non-terminator)是非终结符集合,T(Terminator)是终结符集合,P(Production)是产生式集合,S(Start)是起始符

其中:

N 交 T = 空集

P 是形式为 α -> β 的产生式

   α ∈  (N∪T)*N+(N∪T)*,也就是说α中必须有一个非终结符

   β ∈  (N∪T)* ,也就是说β可以是空串

S∈N

 

分类

1型文法 又称上下文有关文法。生成式形式为 α->β, 且 |α| < |β| 并且不存在 A->ε

2型文法 又称上下文无关文法。生成式形式为 A->α,即左边必须只有一个非终结符

3型文法 又称正则文法。

             生成式 A->wB或A->w,称为右线性文法

             生成式 A->Bw或A->w,称为左线性文法

0型文法 对生成式没有任何限制的文法称为0型文法。从0到3都是包含的关系,但是有特例,包含  A->ε 产生式的2,3型文法不属于1型文法。

四种文法产生的语言分别称为 上下文有关语言,上下文无关语言,正则语言,无限制性语言。

 

2型语言的表示法

2型语言是很重要的一种语言,除了用四元组的方法表示,此处再介绍两种表示方法。

当人们要解释或者讨论程序设计语言本身时,经常又需要一种语言,被讨论的语言叫做对象语言,即某种程序设计语言,讨论对象语言的语言称为元语言,即元语言是描述语言的语言。BNF范式通常被作为讨论某种程序设计语言语法的元语言,而语法图是与BNF范式的描述能力等价的另一种文法表示形式,因其直观性而经常采用。

(1)巴科斯范式(Backus Normal Form,BNF)

2型文法生成式左端只有一个非终结符,所以可以把左端相同的生成式合并在一起,右端用|隔开,用::=代替->,所有非终结符用<>括起来,这是Backus为了描述AIGOL语言首次提出并使用的。

用BNF描述十进制整数的生成语法:

<无符号整数> ::= <数字>|<数字><无符号整数>

<数字> ::= 0|1|2|3|4|5|6|7|8|9

(2)语法图

语法图有四种基本形式

(3)推导树

2型文法还经常用推导树表示

 


本文转自nxlhero 51CTO博客,原文链接:http://blog.51cto.com/nxlhero/695660,如需转载请自行联系原作者

相关文章
|
8天前
|
机器学习/深度学习 自然语言处理 算法
|
3月前
|
设计模式 自然语言处理 算法
摆脱复杂图谱术语,7个原则搞定Schema建模
本文我们结合蚂蚁域内的多个业务场景,举例说明结合SPG规范的结构与语义解耦的知识建模及schema设计方法。
|
3月前
|
机器学习/深度学习 人工智能 自然语言处理
【论文精读】AAAI 2022- 统一的命名实体识别作为词与词之间的关系分类
【论文精读】AAAI 2022- 统一的命名实体识别作为词与词之间的关系分类
【论文精读】AAAI 2022- 统一的命名实体识别作为词与词之间的关系分类
|
8月前
编译原理(六) 文法的分类
编译原理(六) 文法的分类
|
4月前
|
机器学习/深度学习 数据挖掘 BI
【数据挖掘】回归分析定义、概念、分类、过程讲解(图文解释 超详细)
【数据挖掘】回归分析定义、概念、分类、过程讲解(图文解释 超详细)
63 0
|
4月前
|
机器学习/深度学习 人工智能 算法
评价模型:层次分析法
评价模型:层次分析法
41 0
评价模型:层次分析法
|
6月前
|
定位技术
定义系统、模型、结构等概念|认知建模笔记翻译(4)
定义系统、模型、结构等概念|认知建模笔记翻译(4)
48 0
|
8月前
|
自然语言处理 算法 编译器
C++基础句法
● 使用场景 1.switch只能支持常量固定值相等的判断 2.if还可以判断区间范围 3.用switch能做的,用if都能做,但是反过来不行。
56 0
|
算法 C语言
【数学模型】层次分析
【数学模型】层次分析
【数学模型】层次分析
|
机器学习/深度学习 算法 数据可视化
机器学习的四个分支及分类回归常用术语解释
机器学习的四个分支及分类回归常用术语解释