网站大量收购独家精品文档,联系QQ:2885784924

编译方法、技术与实践课件:词法分析与语法分析(二).pptx

编译方法、技术与实践课件:词法分析与语法分析(二).pptx

此“教育”领域文档为创作者个人分享资料,不作为权威性指导和指引,仅供参考
  1. 1、本文档共234页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多

;

?语法分析概要

?上下文无关文法

?自顶向下的语法分析算法

?自底向上的语法分析算法

?词法分析和语法分析的实践技术;;;

Oposition=initial+rate*60

id,1=,id,2+,id,3*,number,4;

?文法:一种用于描述程序设计语言语法的表示方法,能够自然地描述程序设计语言构造的层次化语法结构

O文法给出了一个程序设计语言的精确易懂的

语法规约

O可以基于文法构造语法分析器,帮助确定源程序的语法结构

O语法结构有助于把源程序翻译为正确的目标代码

O文法的扩展性,有助于迭代的语言演化;

?输入:词法分析器输出的词法单元序列

?输出:语法树表示

?语法分析器功能:

O验证输入源程序的合法性,输出良构程序的语法结构

O对于病构的程序,能够报告语法错误,进行错误恢复;

?类型检查,语义分析,翻译生成中间代码等往往和语法分析过程交错完成,实践中往往和语法分析放入一个模块,图上用“前端的其余部分”表示上述活动;

?错误难以避免

?编译器需要具有处理错误的能力

?程序中可能存在不同层次的错误

O词法错误

O语法错误

O语义错误

O逻辑错误

?语法错误相对容易发现,语义和逻辑错误较难精确的检测到

?语法分析器中错误处理程序的设计目标

O清晰准确地报告出现错误,并指出错误的位置

O能从当前错误中恢复,以继续检测后面的错误

O尽可能减少处理正确程序的开销;

?错误恢复

O当预测分析器报错时,表示输入的串不是句子

O对于使用者而言,希望预测分析器能够进行恢复处理后继续语法分析过程,以便在一次分析中找到更多的语法错误

O但是有可能恢复得并不成功,之后找到的语法错误有可能是假的

O进行错误恢复时可用的信息:栈里面的符号,待分析的符号

?两类错误恢复方法

O恐慌模式

O短语层次的恢复;

?基本思想

O语法分析器忽略输入中??一些符号,直到出现由设计者选定的某个同步词法单元

O解释

?语法分析过程总是试图在输入的前缀中找到和某个非终结符号对应的串;出现错误表明现在已经不可能找到这个非终结符号(程序结构)的串

?如果编程错误仅仅局限于这个程序结构,那么我们可以考虑跳过这个程序结构,假装已经找到了这个结构;然后继续进行语法分析处理

O同步词法单元就是这个程序结构结束的标志;

?在预测语法分析表的空白条目中插入错误处理例程的函数指针

?例程可以改变、插入或删除输入中的符号;发出适当的错误消息;;

?语法分析概要

?上下文无关文法

?自顶向下的语法分析算法

?自底向上的语法分析算法

?词法分析和语法分析的实践技术;

?上下文无关文法(ContextFreeGrammar,CFG)

?上下文无关文法是一种能够很好描述程序设计语言的表示方法

stmttif(expr)stmtelsestmt

exprt……

stmtt……;

?一个CFG由以下几个部分构成

O终结符号

?组成串的基本符号,与“词法单元名字”同义

O非终结符号

?语法变量,表示特定串的集合

?给出了语言的层次结构,这种层次结构是语法分析和翻译的关键

O一个开始符号

?某个特定的非终结符号,其表示的串集合是这个文法生成的语言

O一组产生式

?描述将终结符号和非终结符号组合成串的方法

?产生式左部(头)是一个非终结符号

?符号“→”

?一个由零个或多个终结符号与非终结符号组成的产生式右部(体);

?什么是上下文?

O在应用一个产生式进行推导时,前后已经推导出的部分结果就是上下文;

O上下文无关的意思的,只要文法的定义里有某个产生式,不管一个非终结符前后的串是什么,就可以应用相应的产生式进行

文档评论(0)

ning2021 + 关注
实名认证
内容提供者

中医资格证持证人

该用户很懒,什么也没介绍

领域认证该用户于2023年05月10日上传了中医资格证

1亿VIP精品文档

相关文档