- 1、本文档共63页,可阅读全部内容。
- 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 8、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
A::=V:=EE::=T|E+TT::=F|T*FF::=V|(E)|CV::=标识符C::=常数递归定义描述程序结构的规则赋值语句语法分析的依据——语法规则第31页,共63页,星期日,2025年,2月5日赋值语句标识符表达式表达式+表达式表达式标识符整数标识符:=表达式*Id1Id2Id360position:=initial+rate*60id1:=id2+id3*60第32页,共63页,星期日,2025年,2月5日id1:=id2+id3*60:=+N60*id1Positionid2initialid3rate第33页,共63页,星期日,2025年,2月5日推导(derive)、归约(reduce)推导:从文法的开始符号开始,按照语法规则,每次选择某规则右部的一个候选式取代左部,直至识别了语句或者找到错误为止。其过程可用语法树描述归约:按照语法规则,每次选择某规则左部取代右部的一个候选式注:语法=词法规则+语法规则语法分析的方法第34页,共63页,星期日,2025年,2月5日三、语义分析及中间代码生成任务:依据语义规则对识别出的各种语法成分析其含义,并进行初步翻译,生成中间代码。静态:分析语法成份的含义,进行语义上的正确性检查动态:根据相应语义,生成中间代码(介于源语言和目标语言之间的中间语言形式)第35页,共63页,星期日,2025年,2月5日生成中间代码的目的:利于代码优化利于目标代码的移植中间代码的形式: 四元式、三元式、逆波兰表示第36页,共63页,星期日,2025年,2月5日四元式其中t1、t2、t3为编译程序引入的临时工作单元例:y=x+r*6运算符左运算对象右运算对象结果(1)inttoreal6--t1(2)*rt1t2(3)+t2xt3(4)=t3y第37页,共63页,星期日,2025年,2月5日任务:对中间代码进行加工变换,以得到高质量(省时间、省空间)的目标代码四、代码优化依据原则:程序的等价变换规则主要优化内容公共子表达式提取、合并已知量、删除无用赋值语句、循环优化等第38页,共63页,星期日,2025年,2月5日t1=b*ct2=t1+0t3=b*ct4=t2+t3a=t4t1=b*ct2=t1+t1a=t2优化举例第39页,共63页,星期日,2025年,2月5日(1)(inttoreal60-t1)(2)(* id3t1t2)(3)(+ id2t2t3)(4)(:= t3- id1)id1:=id2+id3*60(1)(* id3 60.0 t2)(2)(+id2t2 id1 )(* id3 60.0 t2)(+ id2 t2 id1)优化举例第40页,共63页,星期日,2025年,2月5日目标代码的形式:绝对指令代码:可立即执行的代码(如.exe)汇编指令代码:汇编语言程序,需通过汇编程序汇编后才能运行可重定位的指令代码:先将各目标模块连接起来,确定变量、常数在主存中的位置,装入主存后才能成为可运行的绝对指令代码(如.obj)五、目标代码生成任务:把中间代码变换成特定机器上的低级语言代码第41页,共63页,星期日,2025年,2月5日(* , id3 60.0 t1 )(+ , id2 t1 id1 )mov id3,R2mul #60.0,R2mov id2,R1add R2,R1mov R1,id1目标代码生成举例第42页,共63页,星期日,2025年,2月5日目标代码生成程序代码优化程序语义分析生成中间代码语法分析程序词法分析程序编译过程小结S.PO.P第43页,共63页,星期日,2025年,2月5日编译程序结构(components)典型的编译程序具有7个逻辑部分S.PO.P语义分析及生成中间代码程序代码生成程序代码优
文档评论(0)