南京大学:《编译原理》课程教学资源(PPT课件讲稿)第四章 语法分析(戴新宇)

书四章语法分析 南京大学计算机系 戴新宇 2019-3
南京大学计算机系 戴新宇 2019-3 1

概要 ●语法分析器 上下文无关文法 ●语法分析技术 自顶向下 自底向上 语法分析器生成工具
概要 语法分析器 上下文无关文法 语法分析技术 自顶向下 自底向上 语法分析器生成工具 2

引言 程序设计语言源程序的构成 文法:一种用于描述程序设计语言语法的表示方法,能 够自然地描述程序设计语言构造的层次化语法结构 文法给出了一个程序设计语言的精确易懂的语法规约 可以基于文法构造语法分析器,帮助确定源程序的语法结构 ●语法结构有助于把源程序翻译为正确的目标代码,以及检测 导语法错误。 文法的扩展性 ● Standard c++ Grammar ava sE7 grammar
引言 程序设计语言源程序的构成 文法:一种用于描述程序设计语言语法的表示方法,能 够自然地描述程序设计语言构造的层次化语法结构。 文法给出了一个程序设计语言的精确易懂的语法规约 可以基于文法构造语法分析器,帮助确定源程序的语法结构 语法结构有助于把源程序翻译为正确的目标代码,以及检测 导语法错误。 文法的扩展性 Standard C++ Grammar Java SE7 Grammar 3

语法分析器(What) ●输入:词法分析器输出的词法单元序列 输出:语法树表示 ●语法分析器的类型: 通用型(CKY, Earley) 自顶向下:通常处理LL文法 自底向上:通常处理LR文法
语法分析器(What) 输入:词法分析器输出的词法单元序列 输出:语法树表示 语法分析器的类型: 通用型(CKY,Earley) 自顶向下:通常处理LL文法 自底向上:通常处理LR文法 4

语法分析器(Why) 源程序 词法词法单元 语法 语法 前端的中间表示 分析器 分析器1分析树 其余部分 获取下 个词法单元 符号表 语法分析器功能: 验证输入源程序的合法性,并输出良构程序的语法结构 对于病构的程序,能够报告语法错误,并进行错误回复 写入符号表,类型检查,语义分析,翻译生成中间代码等往往和语 分析过程容绩成,塞践中往往和语法分析放入一个模块,图上
语法分析器(Why) 语法分析器功能: 验证输入源程序的合法性,并输出良构程序的语法结构 对于病构的程序,能够报告语法错误,并进行错误回复 写入符号表,类型检查,语义分析,翻译生成中间代码等往往和语 法分析过程交错完成,实践中往往和语法分析放入一个模块,图上 用“前端的其余部分”表示上述活动。 5

文法 ●本书特指上下文无关文法( Context free grammar, CFG ●程序设计语言中往往存在嵌套结构 ●上下文无关文法是一种能够很好描述程序设计语言的 表示方法 stmt if expr ) stmt else stmt expr Stmt→
文法 本书特指上下文无关文法(Context Free Grammar, CFG) 程序设计语言中往往存在嵌套结构 上下文无关文法是一种能够很好描述程序设计语言的 表示方法 stmt → if ( expr ) stmt else stmt expr → …… stmt → …… 6

CFG的定义 一个CFG由以下几个部分构成 终结符号 组成串的基本符号,与“词法单元名字”同义 ·非终结符号 语法变量,表示特定串的集合 给出了语言的层次结构,这种层次结构是语法分析和翻译的关键 个开始符号 某个特定的非终结符号,其表示的串集合是这个文法生成的语言 一组产生式 描述将终结符合和非终结符号组合成串的方法 产生式左部(头)是一个非终结符号 符号“→” 个由零个或多个终结符号与非终结符号组成的产生式右部(体)
CFG的定义 一个CFG由以下几个部分构成 终结符号 组成串的基本符号,与“词法单元名字”同义 非终结符号 语法变量,表示特定串的集合 给出了语言的层次结构,这种层次结构是语法分析和翻译的关键 一个开始符号 某个特定的非终结符号,其表示的串集合是这个文法生成的语言 一组产生式 描述将终结符合和非终结符号组合成串的方法 产生式左部(头)是一个非终结符号 符号 “→” 一个由零个或多个终结符号与非终结符号组成的产生式右部(体) 7

用于描述算术表达式的文法定义 S-> NP VP VP->VNP epression erpression term NP-> NAME expression expression- term NP->ART N e pression→term NAME-> John term→term* factor V->ate term term/factor ART-> the N-> cat term actor actoN expression factor→id
用于描述算术表达式的文法定义 8 S -> NP VP VP -> V NP NP -> NAME NP -> ART N NAME -> John V -> ate ART -> the N -> cat

符号表示约定 终结符号:ab+3id 非终结符号:ABC.,S,stmt 文法符号:XY E→→E+T|E-T|T 终结符号串:vw T→T*F|T/F|F 文法符号串:aβ F→(E)lid ●不同可选体:a,a,a ●开始符号:S
符号表示约定 终结符号:a b + 3 id… 非终结符号: A B C…, S, stmt 文法符号: X Y … 终结符号串:u v w… 文法符号串:α β… 不同可选体: α1 α2 α3… 开始符号: S 9

推导 ●产生式又可称为重写规则( Rewriting rule ●从开始符号出发,每个重写步骤把一个非终结符号替换为 它的某个产生式的体。 eg.E→E→-(E)→-(id),称为从E到-(id)的推导。 这个推导说明了-(id是表达式E的一个实例,或者说由E产 ●推导的一般性定义: 假设一个产生式A→y,aAβ→aβ,符号→ 表示“通过一步推导出
推导 产生式又可称为重写规则(Rewriting rule) 从开始符号出发,每个重写步骤把一个非终结符号替换为 它的某个产生式的体。 e.g. E -E –(E) –(id) , 称为从E到-(id)的推导。 这个推导说明了–(id)是表达式E的一个实例,或者说由E产 生。 推导的一般性定义: 假设一个产生式A→ γ,αAβ αγβ ,符号 表示“通过一步推导出”。 10
按次数下载不扣除下载券;
注册用户24小时内重复下载只扣除一次;
顺序:VIP每日次数-->可用次数-->下载券;
- 《计算机组装与维修》课程教学资源(PPT课件讲稿)第十三章 局域网维护及常见故障处理.ppt
- 北京大学:《软件需求工程》课程教学资源(PPT课件讲稿)第十章 软件需求开发与管理工具.ppt
- 中国科学技术大学:《网络信息安全 NETWORK SECURITY》课程教学资源(PPT课件讲稿)第二章 数据加密技术基础.ppt
- 《汇编语言》课程教学资源(PPT课件讲稿)第6章 子程序.ppt
- 中国科学技术大学:《计算机体系结构》课程教学资源(PPT课件讲稿)MSI、MESI、分布式共享存储器体系结构、Models of Memory Consistency.pptx
- 《数据库系统概论》课程教学资源(PPT课件讲稿)第六章 数据库设计.ppt
- 电子科技大学:《汇编语言程序设计》课程教学资源(PPT课件)第一章 基础知识(主讲:詹瑾瑜).ppt
- 进程(PPT课件讲稿)Processes.pptx
- 《大学计算机基础》课程教学资源(PPT课件讲稿)第四章 Excel 2007电子表格.ppt
- 东南大学:《C++语言程序设计》课程教学资源(PPT课件讲稿)Chapter 11 Operator Overloading; String and Array Objects(主讲:东方).ppt
- 《计算机网络》课程实验教学大纲.pdf
- 广西医科大学:《计算机网络 Computer Networking》课程教学资源(PPT课件讲稿)Chapter 18 NETWORK DESIGN AND IMPLEMENTATION.pptx
- 《多媒体技术基础》课程教学资源(PPT课件讲稿)单元1 多媒体概述.ppt
- 中国科学技术大学:《并行算法实践》课程教学资源(PPT课件讲稿)上篇 并行程序设计导论 单元I 并行程序设计基础 第三章 并行程序设计简介.ppt
- 《计算机控制技术》课程教学资源(PPT课件讲稿)第二章 模拟量输出通道.ppt
- 哈尔滨工业大学:开放式中文实体关系抽取研究(导师:秦兵).pptx
- 兰州大学:《SOA & Web Service》教学资源(PPT课件讲稿)Lecture 5 Web Service Program(苏伟).ppt
- 中国科学技术大学:《高级操作系统 Advanced Operating System》课程教学资源(PPT课件讲稿)第四章 分布式进程和处理机管理(主讲:熊焰).ppt
- 香港浸会大学:《网络管理 Network Management》课程教学资源(PPT课件讲稿)Chapter 02 Network Management Model.ppt
- 对等网络 Peer-to-Peer Networks(P2P).ppt
- 北京大学:《高级编译技术 Advanced Compiler Techniques》课程教学资源(PPT课件讲稿)Introduction to Optimizations.ppt
- 香港大学:Data Analysis - Factors Potentially Affecting Development.pptx
- 西安电子科技大学:《操作系统 Operating Systems》课程教学资源(PPT课件讲稿)Chapter 06 文件系统 File Systems(主讲:高海昌).ppt
- 南京大学:《自然语言处理 Natural Language Processing(NLP)》课程教学资源(PPT课件讲稿)自然语言处理概述、基于规则(知识工程)的传统自然语言处理方法(理性方法).ppt
- 香港科技大学:片上网络(PPT讲稿)network-on-chip(NoC)NoC Building Blocks.pptx
- 《数据结构》课程教学资源(PPT课件讲稿)第五章 数组.ppt
- 语义网与本体(PPT讲稿)Semantic Web & Ontology(元数据 Metadata).ppt
- 软件开发环境与工具(PPT讲稿)Software development environment and tool.ppt
- 哈尔滨工业大学:逻辑斯蒂回归与最大熵(PPT课件讲稿).pptx
- 《机器学习》教学资源(PPT讲稿)支持向量机 support vector machines.ppt
- 中国科学技术大学:《计算机视觉》课程教学资源(PPT课件讲稿)第二章 视觉的基本知识.ppt
- 《编译原理》课程教学资源(PPT课件讲稿)第二章 词法分析.ppt
- 《计算机网络》课程教学资源(PPT课件)第4讲 以太网组网及故障排除.ppt
- VB.Net程序设计基础(PPT课件讲稿).ppt
- 《计算机导论》课程教学资源(PPT课件讲稿)第9章 计算机学科方法论.ppt
- 厦门大学:《大数据技术原理与应用》课程教学资源(PPT课件讲稿,2017)第11章 图计算.ppt
- 《Visual Basic 6.0程序设计》课程教学资源(PPT课件)第四章 常用控件与窗体.ppt
- 大连工业大学:《计算机程序设计(C语言版)》课程教学资源(PPT课件讲稿,共十三章).pps
- 《高级语言程序设计》课程教学资源(试卷习题)试题五(无答案).doc
- 《计算机文化基础》课程教学大纲 Computer Culture Foundation.pdf