当前位置:高等教育资讯网  >  中国高校课件下载中心  >  大学文库  >  浏览文档

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

资源类别:文库,文档格式:PPTX,文档页数:150,文件大小:2.09MB,团购合买
概要 语法分析器  上下文无关文法  语法分析技术  自顶向下  自底向上  语法分析器生成工具
点击下载完整版文档(PPTX)

书四章语法分析 南京大学计算机系 戴新宇 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

点击下载完整版文档(PPTX)VIP每日下载上限内不扣除下载券和下载次数;
按次数下载不扣除下载券;
24小时内重复下载只扣除一次;
顺序:VIP每日次数-->可用次数-->下载券;
共150页,可试读30页,点击继续阅读 ↓↓
相关文档

关于我们|帮助中心|下载说明|相关软件|意见反馈|联系我们

Copyright © 2008-现在 cucdc.com 高等教育资讯网 版权所有