- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
7.4 中间代码翻译的实现 语法制导翻译器的结构,可描述为: 扩展的语法分析器 翻译文法 + ⒈ 自顶向下翻译文法的要求: ⑴ 源文法应满足自顶向下分析要求(如 LL(1)文法); ⑵ 属性是自顶向下可求值的(属性计算不发生冲突); ⑶ 动作符号可插入到产生式右部任何位置。 ⒉ 自底向上翻译文法的要求: ⑴ 源文法应满足自底向上分析要求(如 LR( )文法); ⑵ 属性是自底向上可求值的(属性计算不发生冲突); ⑶ 动作符号只能位于产生式的最右端。 L-属性翻译文法 S-属性翻译文法 其中 7.4.1 递归子程序翻译法 ⒈ 设置 语义栈:SEM[m] 四元式区:QT[q] ⒉ 翻译文法设计 ⒊ 递归子程序的扩展 ① 动作符号在哪,就在哪执行之; ② 主控程序(Z - E )功能: ※初始化; 结果输出。 E - T { + T{GEQ(+)}|- T{GEQ(-)} } T - F { * F{GEQ(*)}|/ T{GEQ(/)} } F - i{PUSH(i)}| ( E ) G1(E): 【例7.10】算术表达式四元式翻译器的设计1: ---暂存运算对象的属性值。 ---四元式生成结果的存储区。 ※ 算术表达式翻译文法的递归子程序: R2 入口 出口 NEXT(w) T + T y n - n NEXT(w) T y GEQ(+) GEQ(-) 子程序 E R3 R1 主程序 Z 开始 结束 结果输出 初始化 # NEXT(w) err0 y n R0 E Ri 返回地址 (接上页) R5 入口 出口 NEXT(w) F * F y n / n NEXT(w) F y GEQ(*) GEQ(/) 子程序 T R6 R4 入口 出口 i ( err1 NEXT(w) err2 NEXT(w) E ) y y y n n n 子程序 F R7 PUSH(i) Ri 返回地址 ※ 算术表达式四元式翻译过程 : 设 待翻译的表达式: a*(b/c)# QT[q] SEM[m] w 返回地址栈 递归子程序栈 Z E R0 a T R1 F R4 a * Z E T R0R1 ( Z E T F R0R1 R5 a a b Z E T F E R0R1R5 R7 T R1 F R4 a b / Z E T F R0R1R5R7R1 a c Z E T F F R0R1R5R7R1 R6 a c Z E T F R0R1R5R7R1 ) a ⑴(/b,c,t1) a t1 ) Z E T F R0R1R5R7 ) a Z E T F R0R1R5 # a Z E T R0R1 ⑵(*a,t1,t2) t2 # Z E R0 # t2 Z Ok! b b b c t1 t1 E T E T E T E Z,E子程序 T,F子程序 递归子程序调用算法 入口时: 把返回地址压入返回地址栈并进入; 出口时: 把返回地址弹出返回地址栈并返回。 7.4.2 LL(1)翻译法 【例7.11】算术表达式四元式翻译器的设计2: ⒈ 设置 语义栈:SEM[m] 四元式区:QT[q] 语法栈:SYN[n] ; ⒉ 翻译文法设计 E - T E′ ⑴ E′- + T{GEQ(+)}E′⑵| - T{GEQ(-)}E′ ⑶ | ? ⑷ T - F T′ ⑸ T′- * F{GEQ(*)}T′⑹ | / F{GEQ(/)}T′⑺ | ? ⑻ F - i{PUSH(i)} ⑼ | ( E ) ⑽ ⒊ LL(1)分析器的扩展 ⑵ 当动作符号位于栈顶时,执行之; ⑴ 当产生式(逆序)压栈时,动作符号也不例外; ※ 算术表达式四元式翻译过程 : LL(1) 分析表: ⑥ * ⑦ / ⑩ ⑤ ① ( ⑧ ④ ) ⑤ T ⑧ ⑧ ⑧ T` ⑨ F ④ ③ ② E` ① E # - + i 设 待翻译的表达式: a+b*c# SEM[m] QT[q] 操作 w x SYN[n] #E a E PUSH①R # E`T T a PUSH⑤R T`F #E` F a PUSH⑨R #E`T` PUSH(a)a a a #E`T`PUSH(a) + NEXT(w) a #E`T` T` + a PUSH⑧R #E` E` + PUSH②R a # E`GEQ(+)T+ + + a NEXT(w) b #E`GEQ(+)T T PUSH⑤R a #E`GEQ(+) T`F F b PUSH⑨R a
您可能关注的文档
- 第六章电压稳定性讲述.ppt
- 第六章物质的物质属性(中考物理基础复习)(共36张).ppt
- 第六章盆地热史分析.ppt
- 第六章目标与计划学生.ppt
- 第六章电动机(1).ppt
- 第六章电视纪录片.ppt
- 第六章电磁参数的测量.ppt
- 第六章矿用电缆与电缆连接器.ppt
- 第六章知照性公文写作.ppt
- 第六章社会保障支出(新).ppt
- 《GB_T 44227-2024术语资源管理 术语数据库交换(TBX)》专题研究报告.pptx
- 《GB_T 44431-2024法人和其他组织统一社会信用代码信息应用指南》专题研究报告.pptx
- 《GB_T 24977-2024卫浴家具通用技术条件》专题研究报告.pptx
- 《GB_T 28478-2024户外家具 桌椅类通用技术条件》专题研究报告.pptx
- 《GB_T 43952-2024医用供应装置》专题研究报告.pptx
- 《GB_T 43983-2024足球课程学生运动能力测评规范》专题研究报告.pptx
- 《GB_T 44111-2024电化学储能电站检修试验规程》专题研究报告.pptx
- 《GB_T 44113-2024用户侧电化学储能系统并网管理规范》专题研究报告.pptx
- 《GB_T 44123-2024汽车液压制动系统试验方法》专题研究报告.pptx
- 《GB_T 44156-2024乘用车后方交通穿行提示系统性能要求及试验方法》专题研究报告.pptx
最近下载
- SHT35032017 交工文件表格全册.docx VIP
- Unit 3 Same or Different? Section B (1a-2c)课件 2025人教版英语八年级上册.pptx
- 【10套试卷】西安长安兴国初级中学小升初模拟考试数学试题含答案.pdf VIP
- 2025年体育教师考高级试题(附答案).docx VIP
- 胶版画教学课件.ppt VIP
- 施工现场安全管理考核明细及罚款金额.doc
- 生殖医学科理论知识考核试题及答案.docx VIP
- 2025年高中物理章节目录及重难点.pdf VIP
- 浙美版美术四年级上册12.给同学画漫画 课件(共13张PPT)(内嵌音频+视频).pptx VIP
- 幼儿教科研课题:《弘扬民间传统文化,发展幼儿语言能力的实践研究》结题报告.pdf VIP
文档评论(0)