《编译原理》课程教学资源(PPT课件讲稿)第三章 语法分析

第三章语法分析 源程序一词法记号 分析器「取下一个 分析器分析「前端的|中间 树其余部分表示 记号 符号表 本章内容 上下文无关文法 自上而下分析和自下而上分析 围绕分析器的自动生成展开
第三章 语法分析 • 本章内容 – 上下文无关文法 – 自上而下分析和自下而上分析 – 围绕分析器的自动生成展开 词 法 分析器 记 号 取下一个 记号 源程序 分析 树 前端的 其余部分 分析器 中间 表示 符号表

31上下文无关文法 311上下文无关文法的定义 正规式能定义一些简单的语言,能表示给定结构 的固定次数的重复或者没有指定次数的重复 例 a (ba.a(ba 正规式不能用于描述配对或嵌套的结构 例1:配对括号串的集合 例2:{ww|v是a和b的串
3.1 上下文无关文法 3.1.1 上下文无关文法的定义 –正规式能定义一些简单的语言,能表示给定结构 的固定次数的重复或者没有指定次数的重复 例:a (ba) 5 , a (ba)* –正规式不能用于描述配对或嵌套的结构 例1:配对括号串的集合 例2:{wcw | w是a和b的串}

31上下文无关文法 上下文无关文法是四元组(Vr,V,S,P T 终结符集合 V:非终结符集合 S 开始符号,非终结符中的一个 P:产生式集合,产生式形式:A→>a B(id,t, *,,()B, expr, op), expr, P) expr→ ecpr op ecpl expr→(expr) eupr→>-exDr evpr→id 0p→>+ 0p→>*
3.1 上下文无关文法 • 上下文无关文法是四元组(VT , VN , S, P) VT : 终结符集合 VN : 非终结符集合 S : 开始符号,非终结符中的一个 P : 产生式集合, 产生式形式 : A → • 例 ( {id, +, , −, (, )}, {expr, op}, expr, P ) expr → expr op expr expr → (expr) expr → − expr expr → id op → + op →

31上下文无关文法 简化表示 expr>expr op expr (expr) -expr id 0p→+|* 简化表示 E→EAE|(E)-Eid A→+|*
3.1 上下文无关文法 • 简化表示 expr → expr op expr | (expr) | − expr | id op → + | • 简化表示 E → E A E | (E ) | −E | id A → + |

31上下文无关文法 312推导 把产生式看成重写规则,把符号串中的非终结符 用其产生式右部的串来代替 例E→E+E|E*E|(E)|-E|id E→-E→-(E)→-(E+B→-id+E)→-(id+id) 概念 上下文无关语言、等价的文法、句型 记号 S→*a、S→+w
3.1 上下文无关文法 3.1.2 推导 –把产生式看成重写规则,把符号串中的非终结符 用其产生式右部的串来代替 • 例 E → E + E | E E | (E ) | − E | id E −E −(E) −(E + E) −(id + E) −(id + id) • 概念 – 上下文无关语言、等价的文法、句型 • 记号 S *、 S + w

31上下文无关文法 例E→E+E|E*E|(E)-E|id 最左推导 E→m-E→m-(E)→m-(E+E) →m-id+E)→m-id+id) 最右推导(规范推导) E→m-E→m-(B)→m-E+E) →mn-(E+id)→mn-(id+id)
3.1 上下文无关文法 • 例 E → E + E | E E | (E ) | − E | id • 最左推导 E lm −E lm −(E) lm −(E + E) lm −(id + E) lm −(id + id) • 最右推导(规范推导) E rm −E rm −(E) rm −(E + E) rm −(E + id) rm −(id + id)

31上下文无关文法 3.13分析树 例E→E+E|E*E|(E)|-Elid φ_ E) e +e d
3.1 上下文无关文法 3.1.3 分析树 • 例 E → E + E | E E | (E ) | − E | id E − E ( E ) E + E id id

31上下文无关文法 314二义性 E→E*E E→E+E →id*E →E*E+E →id*E+E →id*E+E →id*id+E →id*id+E →id*id+id →id*id+id 两个不同的最左推导
3.1 上下文无关文法 3.1.4 二义性 E E E E E + E id E E E +E id E + E id E + E id id + E id id + E id id + id id id + id 两个不同的最左推导

31上下文无关文法 314二义性 E→E*E E→E+E →id*E →E*E+E →id*E+E →id*E+E →id*id+E →id*id+E →id*id+id →id*id+id 两棵不同的语法树 E E E E E E id d d id
3.1 上下文无关文法 3.1.4 二义性 E E E E E + E id E E E +E id E + E id E + E id id + E id id + E id id + id id id + id E 两棵不同的语法树 E E * + E E id id id E E id E * + E E id id

32语言和文法 °文法的优点 文法给出了精确的,易于理解的语法说明 自动产生高效的分析器 可以给语言定义出层次结构 以文法为基础的语言的实现便于语言的修改 文法的问题 文法只能描述编程语言的大部分语法,不能描述 语言中上下文有关的语法特征
3.2 语言和文法 • 文法的优点 –文法给出了精确的,易于理解的语法说明 –自动产生高效的分析器 –可以给语言定义出层次结构 –以文法为基础的语言的实现便于语言的修改 • 文法的问题 –文法只能描述编程语言的大部分语法,不能描述 语言中上下文有关的语法特征
按次数下载不扣除下载券;
注册用户24小时内重复下载只扣除一次;
顺序:VIP每日次数-->可用次数-->下载券;
- 《操作系统》课程教学资源(PPT课件)第六章 设备管理 Devices Management.ppt
- 《计算机组装维修及实训教程》课程教学资源(PPT课件)第2章 中央处理器.ppt
- 《轻松学习C语言》教学资源(PPT课件讲稿,繁体版,共十二章).pptx
- 西安电子科技大学:《Mobile Programming》课程PPT教学课件(Android Programming)Lecture 7 数据持久化 Data Persistence.pptx
- 《数据结构》课程教学资源(PPT课件讲稿)第四章 串.ppt
- 四川大学:《数据库技术》课程教学资源(PPT课件讲稿)第1章 数据库技术概论.ppt
- Urandaline Investments The Perils of Down Under:Chinese Investment in Australia.pptx
- 《计算机网络》课程教学资源(PPT课件讲稿)第六章 IP路由.ppt
- 《微型计算机原理及应用》课程教学资源(PPT课件讲稿)第2章 微处理器.ppt
- Landmark-Based Speech Recognition.ppt
- 中国科学技术大学:《现代密码学理论与实践》课程教学资源(PPT课件讲稿)第9章 公钥密码学与RSA.pptx
- 中国科学技术大学:《数据结构及其算法》课程电子教案(PPT课件讲稿)第六章 二叉树和树.pps
- 计算机外设及电源故障处理(PPT课件讲稿).ppt
- 《计算机系统结构》课程教学资源(PPT课件讲稿)第三章 流水线技术.ppt
- 四川大学:《Java面向对象编程》课程PPT教学课件(Object-Oriented Programming - Java)Unit 1.2 Designing Classes.ppt
- 软件开发环境与工具的选用(PPT课件讲稿)Select software development tool.ppt
- 电子科技大学:《微机原理与接口技术》课程教学资源(PPT实验讲稿,习友宝).ppt
- 北京师范大学:《多媒体技术与网页制作》课程教学资源(PPT课件)数字音频技术.ppt
- 清华大学出版社:《C语言程序设计》课程教学资源(PPT课件讲稿,共十二章,田丽华、岳俊华、孙颖馨).ppt
- 《算法设计与分析》课程教学资源(PPT讲稿)第十五讲 NP完全性理论与近似算法.pptx
- Object-Oriented Programming(Java).ppt
- Threads, SMP, and MicroKernels.ppt
- 对等网络 Peer-to-Peer Networks(P2P).ppt
- 香港浸会大学:《网络管理 Network Management》课程教学资源(PPT课件讲稿)Chapter 02 Network Management Model.ppt
- 中国科学技术大学:《高级操作系统 Advanced Operating System》课程教学资源(PPT课件讲稿)第四章 分布式进程和处理机管理(主讲:熊焰).ppt
- 兰州大学:《SOA & Web Service》教学资源(PPT课件讲稿)Lecture 5 Web Service Program(苏伟).ppt
- 哈尔滨工业大学:开放式中文实体关系抽取研究(导师:秦兵).pptx
- 《计算机控制技术》课程教学资源(PPT课件讲稿)第二章 模拟量输出通道.ppt
- 中国科学技术大学:《并行算法实践》课程教学资源(PPT课件讲稿)上篇 并行程序设计导论 单元I 并行程序设计基础 第三章 并行程序设计简介.ppt
- 《多媒体技术基础》课程教学资源(PPT课件讲稿)单元1 多媒体概述.ppt
- 广西医科大学:《计算机网络 Computer Networking》课程教学资源(PPT课件讲稿)Chapter 18 NETWORK DESIGN AND IMPLEMENTATION.pptx
- 《计算机网络》课程实验教学大纲.pdf
- 东南大学:《C++语言程序设计》课程教学资源(PPT课件讲稿)Chapter 11 Operator Overloading; String and Array Objects(主讲:东方).ppt
- 《大学计算机基础》课程教学资源(PPT课件讲稿)第四章 Excel 2007电子表格.ppt
- 进程(PPT课件讲稿)Processes.pptx
- 电子科技大学:《汇编语言程序设计》课程教学资源(PPT课件)第一章 基础知识(主讲:詹瑾瑜).ppt
- 《数据库系统概论》课程教学资源(PPT课件讲稿)第六章 数据库设计.ppt
- 中国科学技术大学:《计算机体系结构》课程教学资源(PPT课件讲稿)MSI、MESI、分布式共享存储器体系结构、Models of Memory Consistency.pptx
- 《汇编语言》课程教学资源(PPT课件讲稿)第6章 子程序.ppt
- 中国科学技术大学:《网络信息安全 NETWORK SECURITY》课程教学资源(PPT课件讲稿)第二章 数据加密技术基础.ppt