编译第七章语法制导翻译
108页1、第七章语法制导翻 译和中间代码生成第一节 概述v 语法分析之后,编译的任务是由已识别为正确的源程 序生成一组规格一致,便于计算机加工的指令形式。 一、中间代码生成方法 语法制导翻译,属性文法制导翻译 二、中间代码 中间代码:不是机器语言,便于生成机器语言,便于代 码优化。 中间代码的形式: -逆波兰式 -树形表示法 -三元式 -四元式:最常用的形式 第七章中间代码的生成 1第一节 概述v二、翻译方法 1、语法制导翻译 -在语法分析的基础上进行边分析边翻译。 注:1)语法制导翻译时会根据文法产生式右部符号 串的含义进行翻译,翻译的结果是生成相应中间代 码。 2)语法制导翻译的依据是语义子程序。 3)具体做法:为每个产生式配置一个语义子程序, 当语法分析进行归约或推导时,调用语义子程序, 完成一部分翻译任务。 4)语法分析完成,翻译工作也告结束。第七章中间代码的生成 2第一节 概述v二、翻译方法 1、语法制导翻译 -语法制导翻译适用于多种语法分析 -语法制导翻译种类 1、自上而下语法制导翻译:对每个文法符号配以语 义动作。2、自下而上语法制导翻译:我们主要讨论LR语法制 导翻译 第七章中间
2、代码的生成 3第一节 概述v三、语义子程序 1、作用 用来描述一个产生式所对应的翻译工作。 -如:改进某些变量的值;查填各种符号表;发现并 报告源程序错误;产生中间代码等。 注;这些翻译工作很大程度上决定了要产生什么形 式的中间代码v三、语义子程序 2、写法 语义子程序写在该产生式后面的花括号内。X a语义子程序 注:在一个产生式中同一个文法符号可能出现多次,但它们 代表的是不同的语义值,要区分可以加上角标。 如: E E(1)+E(2) 3、语义值 为了描述语义动作,需要为每个文法符号赋予不同的语义值 :类型,地址,代码值等。第一节 概述第一节 概述v三、语义子程序 4、语义栈 各个符号的语义值放在语义栈中 -当产生式进行归约时,需对产生式右部符号的语义值进行 综合, 其结果作为左部符号的语义值保存到语义栈中。 下推栈包含3部分: -状态栈、符号栈和语义栈 -注:语义栈与状态栈和符号栈是同步变化的。第一节 概述v三、语义子程序 注:1)若把语义子程序改成产生某种中间代码 的动作,就能在语法分析制导下,随着分析 的进展逐步生成中间代码。2)若把语义子程序改成产生某种机器的汇 编语言指令
3、,就能随着分析的进展逐步生成 某机器的汇编语言代码。第一节 概述v例如:v产生式 语义子程序v(0)S E PRINT E VALv(1)E E(1) +E(2) EVAL=E(1)VAL+E(2)VALv(2)E E(1) * E(2) EVAL=E(1)VAL*E(2)VALv(3)E (E(1) EVAL=E(1)VALv(4)E i EVAL=LEXVALv注:LEXVAL指的是词法分析送来的机内二进制整数。v下推栈SmE(2)E(2).VALSm-1+E(1)E(1).VAL.S0#状态符号VAL(语义)第一节 概述v注:由于语义值是放在语义栈中的,它也可以用栈顶指针 TOP指出,语义子程序改写为: v产生式 语义子程序v(0)S E PRINT VALTOPv(1)E E(1) +E(2) VALTOP=VALTOP+VALTOP+2v(2)E E(1) * E(2) VALTOP=VALTOP*VALTOP+2v(3)E (E(1) VALTOP=TOP+1v(4)E i VALTOP=LEXVALv注:LEXVAL指的是词法分析送来的机内二进制整数。第一节 概述v例如:
4、分析输入串(7+9)*5#,并给出它的计算过程。 分析表如下:状态态ACTIONGOTO i+*( )#S 0S3S21 1S4S5acc 2S3 S2 6 3r4r4r4r4 4S3S27 5S3S2 8 6S4 S5 S9 7 r1(S4) S5(r1) r1r1 8r1(S4) r2(S5) r2r2 9 r3 r3r3r3步骤状态SYMVALINPUTACTION 10#-(7+9)*5# 20,2#(-7+9)*5#移进 30,2,3#(7-+9)*5#移进 40,2,6#(E-7+9)*5#r4 50,2,6,4#(E+-7-9)*5#移进 60,2,6,4,3#(E+9-7-)*5#移进 70,2,6,4,7#(E+E-7-9)*5#r4 80,2,6#(E-16)*5#r1 90,2,6,9#(E)-16-*5#移进 100,1#E-16*5#r3 110,1,5#E*-16-5#移进第一节 概述四、常见的中间代码形式 1.四元式形式 (Operator,Operand1, Operand2, Result) 注:1)Operand1, Operand2, Result
《编译第七章语法制导翻译》由会员206****923分享,可在线阅读,更多相关《编译第七章语法制导翻译》请在金锄头文库上搜索。
人教版小学英语单词分类记忆汇总表excel版
人教版九年级全一册英语词汇
2019年开展垃圾分类的工作总结报告【五篇】
六年级英语绘本教案
外研版小学英语单词表全带音标(一年级起点1-12册)
最新国家开放大学电大投资学网络核心课形考网考作业及答案
初中人教版七年级下册生物复习提纲
高中英语语法大全高中英语语法系统全解word版
☆初中英语语法专项练习习题以及答案
初中英语常考近义词同义词辨析
高中物理选修3-5全套教案(人教版) (1)
英语绘本《WeatherReport》教学设计
防护功能平战转换设计专篇各专业
初中人教版七年级上册下册全册生物复习提纲21页 (1)
商务星球版七年级上册地理知识点归纳总结
初中人教版七年级上册下册全册生物复习提纲21页 (2)
高中高考语文作文词汇句型优美句子万能语句大全
中考地理选择题专项复习550题含答案
北师大版七年级数学上册第四章基本平面图形单元测试题含解析
人教版七年级数学上册第一章有理数单元检测题解析版
2024-05-09 39页
2024-05-09 42页
2024-05-02 56页
2024-05-02 61页
2024-04-08 20页
2024-04-06 36页
2024-02-09 36页
2024-01-31 31页
2024-01-28 18页
2024-01-28 31页