语法制导翻译 (2)2.pptVIP

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  4. 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  5. 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  6. 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  7. 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多

(4)文法G[A]SLR(1)分析表状态ACTIONGOTOi+*():=#AVETF0S2131acc2r83S44S9S85675S106r3S11r3r37r5r5r5r58S9S812679r7r7r7r710S9S813711S9S81412S10S1513r2S11r2r214r4r4r4r415r6r6r6r6第60页,共96页,星期日,2025年,2月5日(5)对x:=a+b*c语法制导翻译产生四元式过程(以赋值语句x:=a+b*c为例)步骤状态栈符号栈PLACE输入串归约规则调用子程序四元式10#-X:=a+b*c#SUB8202#x-Vx:=a+b*c#V::=i303#V-Vx:=a+b*c#4034#V:=-Vx-a+b*c#50349#V:=a-Vx-Fa+b*c#F::=iSUB760347#V:=F-Vx-Fa+b*c#T::=FSUB570346#V:=T-Vx-Ta+b*c#E::=TSUB380345#V:=E-Vx-Ea+b*c#903450#V:=E+-Vx-Ea-b*c#10034509#V:=E+b-Vx-Ea-Fb*c#F::=iSUB711034507#V:=E+F-Vx-Ea-Tb*c#T::=FSUB512034503#V:=E+T-Vx-Ea-Tb*c#130345031#V:=E+T*-Vx-Ea-Tb-c#14#V:=E+T*c-Vx-Ea-Tb-FC#F::=iSUB715#V:=E+T*F-Vx-Ea-T1#T::=T(1)*FSUB4(*,b,c,T1)16034503#V:=E+T-Vx-T2#E::=E(1)+TSUB2(+,a,T1,T2)170345#V:=E-Vx-T2#A::=V:=ESUB1(:=,T2,,x)1801#A#第61页,共96页,星期日,2025年,2月5日§5.3自底向上语法制导翻译一、简单算术表达式和赋值语句翻译1、翻译成四元式分析表几点说明在分析表中Vx,Ea,Tb,Fc之类记号,表示与非终结符V,E,T,F相关联的V·PLACE,E.PLACE,T.PLACE,F.PLACE中存放着ENTRY(x),ENTRY(a),ENTRY(b),ENTRY(c)符号指针,指向符号表。在四元式中,如(*,b,c,T1),*实际上是某种整数编码,反映运算符本身及其信息特征,如类型等。b,c实际上也是指示器,指示符号表入口;T1是临时变量,实际上也是整数码.第62页,共96页,星期日,2025年,2月5日§5.3自底向上语法制导翻译一、简单算术表达式和赋值语句翻译2、类型检查与类型转换(1)目的1)类型检查是编译程序语义检查不可缺少的一部分。类型检查就是对访问数据的操作和被访问数据的类型进行检查检查操作的合法性和数据类型的相容性。例如,在PASCAL语言中,若算术运算符的操作数为布尔量,或者赋给实型变量值是个指针,则编译程序报告“类型不相容”的诊断信息。2)允许类型混合,但在处理时要统一,所以必须进行类型转换。例如,加法运算“+”允许运算对象是整型数或实型数,如果一个运算对象是实型,另一个运算对象是整型,其运算结果的类型是实型,由于实型数和整型数的内部表示不相同,因此为了使整型数能参加实型数运算,必须事先将整型数转换成实型数。第63页,共96页,星期日,2025年,2月5日§5.3自底向上语法制导翻译一、简单算术表达式和赋值语句翻译2、类型检查与类型转换(2)类型检查类型检查可在生成中间代码时进行,也可在生成目标代码时进行,但最好是在生成中间代码时进行,因为语法和语义检查最好尽早进行,这样能尽早避免徒劳的工作。在上面对简单算术表达式和赋值语句翻译到四元式的讨论中,我们假定各个变量是同一类型整型变量,并且规定在四元式的op代码中,本身就会有类型信息。所以,在上例各语义子程序中,我们并未考虑有关类型方面语义处理。第64页,共96页,星期日,2025年,2月5日§5.3自底向上语法制导翻译一、简单算术表达式和赋值语句翻译2、类型检查与类

文档评论(0)

xiaolan118 + 关注
实名认证
文档贡献者

你好,我好,大家好!

版权声明书
用户编号:7140162041000002

1亿VIP精品文档

相关文档