上下文无关文法

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

西北工业大学软件与微电子学院 machunyan
23
第3章 上下文无关文法
算术表达式(34-3)*42的推导: exp exp op exp exp op number exp * number (exp) * number (exp op exp) * number (exp op number) * number (exp - number) * number (number - number) * number
西北工业大学软件与微电子学院 machunyan
22
第3章 上下文无关文法
3.句型和句子的定义(续)
简单整型算术表达式文法: exp → exp op exp|(exp)|number op → +|-|* 给出算术表达式(34-3)*42的一个推导,请列 出推导过程中出现的句型和句子。
2016/4/6
则称v直接推导到w,记作 v w,也称w直 接归约到v。
2016/4/6
西北工业大学软件与微电子学院 machunyan
17
第3章 上下文无关文法
2.推导和规约的定义(续)
例:G[S]:S→0S1,S→01
直接推导: S 0S1 0S1 00S11 00S11 000S111 000S111 00001111
2016/4/6 西北工业大学软件与微电子学院 machunyan 4
3.1 语言的表示(续)
正规表达式的局限性
第3章 上下文无关文法
正规表达式不能用于描述配对或嵌套的结构
{(n)n | n > 1}
正规表达式不能用于描述下述重复串
{wcw| w是a和b形成的任意串}
2016/4/6
2016/4/6
西北工业大学软件与微电子学院 machunyan
24
第3章 上下文无关文法
3.2 上下文无关文法的形式定义
1. 2. 3. 4. 5. 6. 7. 8.
上下文无关文法(即2型文法)的形式定义 推导和规约的定义 句型和句子的定义 最左和最右推导 文法定义的语言 递归产生式和递归文法 chomsky文法的分类---了解 文法和语言---了解
其中2型文法(或上下文无关文法)对程序设计 语言是最有用的,它可以作为程序设计语言语 法结构描述的标准方式。
2016/4/6
西北工业大学软件与微电子学院 machunyan
6
第3章 上下文无关文法
3.1 语言的表示(续)
Chomsky文法用生成方式(规则)描述语言, 语言中的每个句子用严格定义的规则构造。 文法示例,简单句子的语法结构表示规则:
第3章 上下文无关文法
3.2 上下文无关文法的形式定义
1. 2. 3. 4. 5. 6. 7. 8. 上下文无关文法(即2型文法)的形式定义 推导和规约的定义 句型和句子的定义 最左和最右推导 文法定义的语言 递归产生式和递归文法 chomsky文法的分类---了解 文法和语言---了解
2016/4/6
2016/4/6
西北工业大学软件与微电子学院 machunyan
16
第3章 上下文无关文法
2.推导和规约的定义(续)
直接推导或一步推导
直接推导就是产生式规则的一次运用,即用产 生式的右部替换左部,记为“” 。
直接推导的定义:若有v,w满足: v=γαδ, w=γβδ
其中:α→β是文法G的产生式, γ∈ (VT ∪ VN)*,δ∈ (VT ∪ VN)*
2016/4/6
西北工业大学软件与微电子学院 machunyan
2016/4/6
西北工业大学软件与微电子学院 machunyan
27
第3章 上下文无关文法
4 .最左和最右推导(续)
最右推导
S * 是一个最右推导是指:在由S推导的过 程中,任何一步直接推导αβ,都是用字符串α 中的最右非终结符对应的产生式规则进行推导, 其中α、β是句型。
最右推导也被称为规范推导,由规范推导所 得的句型称为规范句型。
20
第3章 上下文无关文法
3.2 上下文无关文法的形式定义 1. 2. 3. 4. 5. 6. 7. 8. 上下文无关文法(即2型文法)的形式定义 推导和规约的定义 句型和句子的定义 最左和最右推导 文法定义的语言 递归产生式和递归文法 chomsky文法的分类---了解 文法和语言---了解
2016/4/6
2016/4/6
西北工业大学软件与微电子学院 machunyan
18
第3章 上下文无关文法
2.推导和规约的定义(续)
推导的定义:
若存在w0w1 ... wn (n>0), 用 w0 =>+ wn表示w0到wn经历一步或多步 推导,称w0推导出wn ,或wn归约到w0 ; 若有w0 =>+ wn ,或w0 = wn ,则记为 w0 =>* wn ,表示表示w0到wn零步或多步 推导。
第3章 上下文无关文法
课程内容
第1章 概论 第2章 词法分析 第3章上下文无关文法 第4章语法分析 第5章语义分析 第6章运行时环境 第7章代码生成
2016/4/6
西北工业大学软件与微电子学院 machunyan
1
第3章 上下文无关文法
第三章 上下文无关文法
本章的目的:
西北工业大学软件与微电子学院 machunyan
21
第3章 上下文无关文法
3.句型和句子的定义
句型和句子 设G=(VN , VT , P , S)是一文法,且 V=VN∪VT
若S =>*α,α∈V*,则称α为文法G的句型; 若S=>+α,α∈VT*,则称α为文法G的句子;
2016/4/6
注:终结符和非终结符可以用单个 字符表示,也可以用字符串表示。 产生式 的左部 产生式 的右部
2016/4/6
西北工业大学软件与微电子学院 machunyan
11
第3章 上下文无关文法
文法举例
例 G1 =({N} , {0,1}, {N→0N, N→1N, N→0, N→1}, N)
其中:非终结符集合:VN ={N} 终结符集合: VT ={0,1} 产生式的集合:
为语言的语法描述寻求形式工具,要求该工 具对程序设计语言给出精确无二义的语法描 述。 基于语法的形式化描述,语法分析算法见第 四章。
2016/4/6
西北工业大学软件与微电子学院 machunyan
2
第三章 上下文无关文法及分析
第3章 上下文无关文法
3.1 语言的表示 形式工 3.2 上下文无关文法的形式定义 具 3.3 分析树 3.4 二义性文法 注:P40-61 为了解内容,不作考核要求
2016/4/6
西北工业大学软件与微电子学院 machunyan
8
第3章 上下文无关文法
第三章 上下文无关文法及分析
3.1 语言的表示 3.2 上下文无关文法的形式定义 3.3 分析树 3.4 二义性文法
形式工 具
作业
2016/4/6 西北工业大学软件与微电子学院 machunyan 9
P={N→0N,N→1N,N→0,N→1}
开始符号为:N
2016/4/6
西北工业大学软件与微电子学院 machunyan
12
第3章 上下文无关文法
文法举例
通常情况下,文法仅用产生式的集合表示: G1[N]: 也可写成: G1[N]: N→0N | 1N | 0 | 1
表示文法 的开始符 号
N→0N N→1N N→0 N→1
西北工业大学软件与微电子学院 machunyan
ຫໍສະໝຸດ Baidu
7
第3章 上下文无关文法
3.1 语言的表示(续)
例如:包含加法、减法和乘法的简单整型算 术表达式的语法结构可由下面的上下文无关 文法(2型文法)给出: exp → exp op exp exp →(exp) exp → number op → +|-|*
简单整型算术表达式文法:
exp → exp op exp|(exp)|number op → +|-|*
2016/4/6
西北工业大学软件与微电子学院 machunyan
26
第3章 上下文无关文法
算术表达式(34-3)*42的最左推导:
exp exp op exp (exp)op exp (exp op exp)op exp (number op exp)op exp (number - exp)op exp (number - number) op exp (number - number) * exp (number - number) * number
西北工业大学软件与微电子学院 machunyan
10
第3章 上下文无关文法
1. 上下文无关文法(即2型文法)的形式定义:
上下文无关文法G是一个四元组,即G=(VT , VN , P,S):
① 终结符(或Token)集合VT ② 非终结符集合VN(与VT不相交) ③ 产生式或文法规则A→α形成的集合P, 其中 A∈VN,α∈(VT∪VN)* ④ 开始符号S,其中S∈VN
2016/4/6
西北工业大学软件与微电子学院 machunyan
19
第3章 上下文无关文法
2.推导和规约的定义(续)
例:G[S]: S→0S1, S→01 给出字符串00001111的一个推导: S0S100S11000S11100001111 S +00001111
2016/4/6
西北工业大学软件与微电子学院 machunyan
<句子>→<主语> <谓语> <主语>→ <冠词> <形容词> <名词> <谓词>→ <动词> <直接宾语> <直接宾语>→<冠词> <名词>
把上述两个字符串中间用一箭头分隔构成的有 序对称为产生式。其中, “ →”表示“由…… 组成”, “ →”也可以用=,::=,:来代替。
2016/4/6
2016/4/6
西北工业大学软件与微电子学院 machunyan
13
第3章 上下文无关文法
文法举例
文法G[exp] exp → exp op exp exp →( exp )
exp → number op → + | - | *
的终结符、非终结符、开始符号分别为?
2016/4/6
西北工业大学软件与微电子学院 machunyan
西北工业大学软件与微电子学院 machunyan
5
第3章 上下文无关文法
3.1 语言的表示(续)
Noam Chomsky研究了自然语言的结构,提出 了一种描述语言的数学系统(Chomsky文法), 并以此定义了四类性质不同的文法(0型,1型, 2型和3型文法),称为语言(文法)的Chomsky 分类。
作业
2016/4/6 西北工业大学软件与微电子学院 machunyan 3
3.1 语言的表示(续)
第3章 上下文无关文法
如何描述一种语言(符号串的集合)?
如果语言是有穷的(仅包含有穷个句子)
可以将句子逐一枚举进行表示。
如果语言是无穷的,找出语言的有穷表示
生成方式(文法):语言的每个句子可以用定义的规 则构造,例如,正规表达式。 识别方式(自动机):用一个过程模型,输入的一任 意串属于语言时,该过程经有限次计算后就会停止 并回答“是”,若不属于,要么能停止并回答“不 是”,要么永远继续下去,例如,DFA
14
第3章 上下文无关文法
3.2 上下文无关文法的形式定义(续)
1. 2. 3. 4. 5. 6. 7. 8. 上下文无关文法(即2型文法)的形式定义 推导和规约的定义 句型和句子的定义 最左和最右推导 文法定义的语言 递归产生式和递归文法 chomsky文法的分类---了解 文法和语言---了解
2016/4/6
西北工业大学软件与微电子学院 machunyan
25
第3章 上下文无关文法
4.最左和最右推导
最左推导
对于文法G[S],S * 是一个最左推导是指: 在由S推导的过程中,任何一步直接推导αβ, 都是用字符串α中的最左非终结符对应的产生式 规则进行推导,其中α、β是句型。
2016/4/6
西北工业大学软件与微电子学院 machunyan
15
2.推导和规约的定义
第3章 上下文无关文法
包含加法、减法和乘法的简单整型算术表达 式的语法结构:
exp → exp op exp exp →( exp ) exp → number op → +|-|*
number – number是否是一个合法的句子?
相关文档
最新文档