《编译原理》课程教学资源(PPT课件讲稿)上下文无关文法——自顶向下分析

上下文无关文法 自顶向下分析 4.1~4.4
上下文无关文法 自顶向下分析 4.1~4.4

32上下文无关文法CFG) CFG的定义与表示 上下文无关文法, Context Free grammar,CFG 定义31CFG是一个四元组: G=(N,T,P,S),其中 1)N是非终结符( Nonterminals)的有限集合; (2)T是终结符( Terminals)的有限集合,且N∩T=① (3)P是产生式( Productions)的有限集合,形如: A→0,其中A∈N(左部),a∈(N∪T*(右部), 若α=ε,则称A→ε为空产生式(也可以记为A→); (4)S是非终结符,称为文法的开始符号( Start symbol)
3 3.2 上下文无关文法(CFG) CFG的定义与表示 上下文无关文法,Context Free Grammar,CFG 定义3.1 CFG是一个四元组: G =(N,T,P,S),其中 (1) N是非终结符(Nonterminals)的有限集合; (2) T是终结符(Terminals)的有限集合,且N∩T=Φ; (3) P是产生式(Productions)的有限集合,形如: A→α,其中A∈N(左部),α∈(N∪T)*(右部), 若α=ε,则称A→ε为空产生式(也可以记为A →); (4) S是非终结符,称为文法的开始符号(Start symbol)

32上下文无关文法CFG) [例3.2]简单算术表达式的上下文无关文法可表示如下 N={E}T={+,,(,),-,id}s=E P:E→E+E(1) E→E*E(2) E→(E)(3)(G3.1) E→E E→id (5) 1.产生式的一般读法 记号→读作“定义为”或者“可导出”。 E→E+E”表述为“算术表达式定义为两个算术表达式 相加”;或者“一个算术表达式加上另一个算术表达式, 仍然是一个算术表达式
4 3.2 上下文无关文法(CFG) [例3.2] 简单算术表达式的上下文无关文法可表示如下: N = {E} T = {+, * ,(,),-,id} S = E P: E → E + E (1) E → E * E (2) E →(E) (3) (G3.1) E → -E (4) E → id (5) 1. 产生式的一般读法 记号 → 读作“定义为”或者“可导出”。 “E → E + E” 表述为“算术表达式定义为两个算术表达式 相加”;或者“一个算术表达式加上另一个算术表达式, 仍然是一个算术表达式

32上下文无关文法CFG) 2.由产生式集表示CFG 前提:若文法正确 结论:文法开始符号S是第一个产生式的左部; N是可以出现在产生式左边符号的记号集合; T是绝不出现在产生式左边符号的记号集合; P:E→E+E(1) S=E E→E*E(2) E→(E)(3)N={E T={+,*,(,),-,id} EE E (5) 产生式表示也被称为巴克斯范式( Backus-Naur form, BNF),其中→用∷=表示
5 3.2 上下文无关文法(CFG) 2. 由产生式集表示CFG 前提: 若文法正确 结论: 文法开始符号S是第一个产生式的左部; N是可以出现在产生式左边符号的记号集合; T是绝不出现在产生式左边符号的记号集合; P: E → E + E (1) E → E * E (2) E →(E) (3) E → -E (4) E → id (5) 产生式表示也被称为巴克斯范式(Backus-Naur Form, BNF),其中→用::=表示 S=E N={E} T={+, * ,(,),-,id}

32上下文无关文法CFG) CFG产生语言的基本方法一推导 CFG(产生式)通过推导的方法产生语言 通俗地讲,产生式产生语言的过程是从开始符号S开始,对产 生式左部的非终结符反复地使用产生式:将产生式左部的非 终结符替换为右部的文法符号序列(展开产生式,用标记 >表示),直到得到一个终结符序列。 [例34用(G32)产生终结符序列-(idid可如下 E→E+E(1) E=>-E E*E(2) >-(E)by(3) (E)(3)(G3.2) >-(E+E)by(1) -E(4) >-(id+)by(5) id(5) =>-(id+id) by (5)
6 3.2 上下文无关文法(CFG) CFG产生语言的基本方法-推导 CFG(产生式)通过推导的方法产生语言。 通俗地讲,产生式产生语言的过程是从开始符号S开始,对产 生式左部的非终结符反复地使用产生式:将产生式左部的非 终结符替换为右部的文法符号序列(展开产生式,用标记 =>表示),直到得到一个终结符序列。 [例3.4] 用(G3.2)产生终结符序列-(id+id)可如下: E → E + E (1) | E * E (2) |(E) (3) (G3.2) | -E (4) | id (5) E => -E by(4) => -(E) by(3) => -(E+E) by(1) => -(id+E) by(5) => -(id+id) by(5)

32上下文无关文法CFG) 定义32利用产生式产生句子的过程中,将产生式A→y的右部 代替文法符号序列αAβ中的A得到ayβ的过程,称αAβ直接推 导出Yβ,记作:aAβ→>ayβ 若对于任意文法符号序列a1,Q2,….n,均有a1=>02>.→>n, 则称此过程为零步或多步推导,记为: a1=*>n,其中a1=an的情况为零步推导。 若α1n,即推导过程中至少使用一次产生式,则称此过程为 至少一步推导,记为:al=+>ano 两点注意: ,有0*,即推导具有自反性; ※若Q=*>β,β=*>Y,则α=*>Y,即推导具有传递性
7 3.2 上下文无关文法(CFG) 定义3.2 利用产生式产生句子的过程中,将产生式A→γ的右部 代替文法符号序列αAβ中的A得到αγβ的过程,称αAβ直接推 导出αγβ,记作:αAβ=>αγβ。 若对于任意文法符号序列α1,α2,...αn,均有α1=>α2=>...=>αn, 则称此过程为零步或多步推导,记为: α1=*>αn,其中α1=αn的情况为零步推导。 若α1≠αn,即推导过程中至少使用一次产生式,则称此过程为 至少一步推导,记为:α1= +>αn。 两点注意: α,有α=*>α,即推导具有自反性; 若α=*>β,β=*>γ,则α=*>γ,即推导具有传递性

32上下文无关文法(CFG) 定义33由CFGG所产生的语言L(G)被定义为 L(G=O S=+>0 and OET*i, C、L(G称为上下文无关语言( Context Free Language, ),O称为句子。 若S=*>0,α∈(NUT)*,则称α为G的一个句型。 定义34在推导过程中,若每次直接推导均替换句型中最左边 的非终结符,则称为最左推导,由最左推导产生的句型被称 为左句型。 类似可定义最右推导与右句型,最右推导也被称为规范推导 E→>→>(E)→>E+E)→>-(id+E)→>-(id+id) a1 a2 a3 04 05 06 06是句子,所有ai(i=1.6)均是句型
8 3.2 上下文无关文法(CFG) 定义3.3 由CFG G所产生的语言L(G)被定义为: L(G) = { ω┃S=+>ω and ω∈T* }, L(G)称为上下文无关语言(Context Free Language, CFL),ω称为句子。 若S=*>α,α∈(N∪T)*,则称α为G的一个句型。 定义3.4 在推导过程中,若每次直接推导均替换句型中最左边 的非终结符,则称为最左推导,由最左推导产生的句型被称 为左句型。 类似可定义最右推导与右句型,最右推导也被称为规范推导。 E => -E => -(E) => -(E+E) => -(id+E) => -(id+id) α1 α2 α3 α4 α5 α6 α6是句子,所有αi (i=1...6)均是句型

语言与文法简介
语言与文法简介

33语言与文法简介 ⑦正规式与上下文无关文法 1.正规式到CFG的转换 推论3.1正规式描述的语言结构均可用CFG描述,反之不一定 从正规式到CFG的对应关系: ①构造正规式的NFA; ②若0为初态,则AO为开始符号; ③对于move(ia),引入产生式Ai→aAj; 经验的方法: ④对于move(i;l),引入产生式Ai→Aj; A→HT ⑤若是终态,则引入产生式Ai→E。 H→E|HaHb [例3.1从正规式=ab)*ab的NFA构造CFG:T→ab A0→aAO| bANaL A1→bA2 b b 0 A2→bA3 A3→£
10 3.3 语言与文法简介 正规式与上下文无关文法 1. 正规式到CFG的转换 推论3.1 正规式描述的语言结构均可用CFG描述,反之不一定 从正规式到CFG的对应关系: ① 构造正规式的NFA; ② 若0为初态,则A0为开始符号; ③ 对于move(i,a)=j,引入产生式Ai→aAj; ④ 对于move(i,ε)=j,引入产生式 Ai→Aj; ⑤ 若i是终态,则引入产生式Ai →ε。 [例3.11] 从正规式r=(a|b)*abb的NFA构造CFG: A0 → aA0|bA0|aA1 A1 → bA2 A2 → bA3 A3 → ε 经验的方法: A → HT H →ε| Ha | Hb T → abb 0 1 2 3 a b b a b

33语言与文法简介 2.为什么用正规式而不用CFG描述词法? ①词法规则简单,用正规式描述已足够; ②正规式的表示比CFG更直观、简洁、易于理解; ③有限自动机的构造比下推自动机简单,且分析效率高 ④区分词法和语法,为编译器前端的模块划分提供方便。 贯穿词法分析和语法分析始终的思想: ①语言的描述和语言的识别是表示一个语言的两个不同侧面, 二者缺一不可;(语言、文法、自动机) ②用正规式和CFG描述的语言,对应的识别方法(自动机) 不同 ③正规式适合描述线性结构,如标识符、关键字、注释等; CFG适合描述具有嵌套(层次)性质的非线性结构,如不 同结构的句子 if-then-else、 while-do等
11 3.3 语言与文法简介 2. 为什么用正规式而不用CFG描述词法? ① 词法规则简单,用正规式描述已足够; ② 正规式的表示比CFG更直观、简洁、易于理解; ③ 有限自动机的构造比下推自动机简单,且分析效率高; ④ 区分词法和语法,为编译器前端的模块划分提供方便。 贯穿词法分析和语法分析始终的思想: ① 语言的描述和语言的识别是表示一个语言的两个不同侧面, 二者缺一不可;(语言、文法、自动机) ② 用正规式和CFG描述的语言,对应的识别方法(自动机) 不同; ③ 正规式适合描述线性结构,如标识符、关键字、注释等; CFG适合描述具有嵌套(层次)性质的非线性结构,如不 同结构的句子if-then-else、while-do等
按次数下载不扣除下载券;
注册用户24小时内重复下载只扣除一次;
顺序:VIP每日次数-->可用次数-->下载券;
- IS6000 – Seminar 8 Research Methods – Case Study – Action Research.pptx
- 《数据结构 Data Structure》课程教学资源(PPT课件讲稿)第三章 栈和队列.ppt
- 四川大学:《操作系统 Operating System》课程教学资源(PPT课件讲稿)Chapter 2 Operating System Overview.ppt
- 河南中医药大学(河南中医学院):《网络技术实训》课程教学资源(PPT课件讲稿)第9讲 通过VPN访问企业网内部服务器设计讨论.pptx
- 《多媒体教学软件设计》课程教学资源(PPT课件讲稿)第3章 多媒体教学软件开发平台(Authorware).ppt
- 香港科技大学:Latent Tree Models Part III:Learning Algorithms.pptx
- 四川大学:Object-Oriented Design and Programming(Java,PPT课件)Advanced Class Design.ppt
- 《计算机组成原理》课程教学资源(PPT课件讲稿)第6章 总线结构.ppt
- 南京航空航天大学:《C++程序设计》课程教学资源(PPT课件)第1章 C++程序设计基础(主讲:陈哲).ppt
- 《Excel实用技术基础》课程教学资源(PPT课件讲稿)Excel 技术基础、数据管理.ppt
- 《计算机系统》课程教学资源(PPT课件讲稿)第六章 设备管理 Devices Management.ppt
- Introduction to XML IR(PPT讲稿).ppt
- 中国传媒大学(北京广播学院):《计算机网络》课程教学资源(PPT课件讲稿)第五章 网络层 The Network Layer.ppt
- 山东大学:《微机原理及单片机接口技术》课程教学资源(PPT课件讲稿)第六章 中断(主讲:刘忠国).ppt
- 《工程计算软件》课程教学资源(PPT课件讲稿)第四章 Maple简介.ppt
- 中国科学技术大学:QuickPass系统的排队问题(PPT讲座,谢瑶).ppt
- 中国科学技术大学:《网络信息安全 NETWORK SECURITY》课程教学资源(PPT课件讲稿)第十章 入侵检测系统(主讲:肖明军).ppt
- 东南大学:《数据结构》课程教学资源(PPT课件讲稿)第五章 树(主讲:方效林).ppt
- 西南民族大学:《软件需求分析与总体设计》课程教学资源(PPT课件讲稿)软件总体(概要)设计.ppt
- 北京航空航天大学:Graph Search - a New Paradigm for Social Computing.pptx
- 《计算机应用基础》课程教学资源(PPT讲稿)统考考前辅导.ppt
- Cassandra and Sigmod contest.pptx
- 上海交通大学:《数字图像处理 Digital Image Processing》课程教学资源(PPT课件讲稿,第三版)Chapter 9 Morphological Image Processing.pptx
- 南京航空航天大学:《模式识别》课程教学资源(PPT讲稿)Model Selection for SVM & Our intent works.ppt
- 中国科学技术大学:《微机原理》课程教学资源(PPT课件讲稿)第八章 中断系统.pptx
- 《单片机原理及应用》课程教学资源(PPT课件讲稿)第3章 MCS-51单片机的指令系统.pptx
- 合肥工业大学:《网络安全概论》课程教学资源(PPT课件讲稿)无线网络安全.ppt
- 《计算机辅助设计——CAD制图》课程标准.pdf
- 《Link Layer Computer Networking:A Top Down Approach》课程教学资源(PPT课件讲稿)Chapter 5 The Data Link Layer.ppt
- 《计算机网络》课程教学资源(PPT课件讲稿)Chapter 06 广域网技术.ppt
- 《电脑组装与维护实例教程》教学资源(PPT课件讲稿)第13章 计算机的保养.ppt
- 中国人民大学:A Survey on PIM(PPT讲稿).ppt
- 河南中医药大学(河南中医学院):《计算机网络》课程教学资源(PPT课件讲稿)第二章 物理层(阮晓龙).pptx
- 西安电子科技大学:《现代密码学》课程教学资源(PPT课件讲稿)第八章 密钥分配与密钥管理.pptx
- 《算法设计与分析》课程教学资源(PPT讲稿)第十五讲 NP完全性理论与近似算法.pptx
- 清华大学出版社:《C语言程序设计》课程教学资源(PPT课件讲稿,共十二章,田丽华、岳俊华、孙颖馨).ppt
- 北京师范大学:《多媒体技术与网页制作》课程教学资源(PPT课件)数字音频技术.ppt
- 电子科技大学:《微机原理与接口技术》课程教学资源(PPT实验讲稿,习友宝).ppt
- 软件开发环境与工具的选用(PPT课件讲稿)Select software development tool.ppt
- 四川大学:《Java面向对象编程》课程PPT教学课件(Object-Oriented Programming - Java)Unit 1.2 Designing Classes.ppt