- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
中间代码生成;第八章 中间代码生成;8.1 中间代码;常用的中间代码(语言);如何生成语言结构的三地址码;以S:=(A-12)*B+6为例将赋值语句变换为语法结构树;生成赋值语句语法树的语法制导定义;例 8-2:a:=b*(-c)+b*(-34)的语法结构树——直观描述;语法结构树——数组存储形式;后缀式(逆波兰表示);生成后缀式的属性文法;三地址代码;其它语句的三地址代码;生成三地址码的属性文法;8.2 说明语句的翻译;要关心的问题;要关心的问题;变量说明的翻译;例 8-3:相对地址举例;文法描述;属性、过程、与全局量;说明语句的翻译模式;例 8-4 x:real; i:integer 的翻译;例 8-4 x:real; i:integer 的翻译;作用域信息的保存;P ? M D S {addwidth (top(tblptr), top(offset));
pop(tblptr); pop(offset) }
M ? ? {t := mktable(nil);
push(t,tblptr); push(0,offset) }
D ? D1 ; D2
D ? proc id ;N D1; S {t := top(tblptr);
addwidth(t,top(offset));pop(tblptr);pop(offset);
enterproc(top(tblptr),id.name,t) }
D?id:T {enter(top(tblptr),id.name,T.type,top(offset));
top(offset):=top(offset)+ T.width}
N ? ? {t := mktable(top(tblptr) );
push(t,tblptr); push(0,offset) } ;program sort(input,output);
var a:array[0..10] of integer;
x:integer;
procedure readarray;
var i:integer; begin …a…end;
procedure exchange(i,j:integer);
begin x:=a[i];a[i]:=a[j];a[j]:=x;end;
procedure quicksort(m,n:integer);
var k,v:integer;
function partition(y,z:integer):integer;
var i,j:integer;
begin …a…
…v…
…exchange(i,j)…end;
begin … end;
begin … end;;表 头;表 头;x integer 40;表 头;表 头;表 头;表 头;表 头;表 头;表 头;表 头;表 头;表 头;表 头;表 头;表 头;表 头 44;记录说明的翻译;记录说明的翻译;记录的域名;数组说明的翻译;数组的引用与分配策略;静态数组分配要完成的工作;??哪些要处理的问题
准备
上下界的计算
体积的计算
动态分配子程序
将计算的结果告诉动态分配子程序
进行分配;动态分配方案下数组说明的代码结构;8.4 赋值语句的翻译;实现赋值语句的翻译;为赋值语句产生三地址码的翻译模式;临时名字的重用;基于临时变量生存期特征的三地址代码;数组元素的引用;数组元素地址计算--行优先;数组元素地址计算的翻译方案;数组元素地址计算的翻译方案;数组元素地址计算的翻译方案;赋值语句完整的产生式;赋值语句的翻译模式;赋值语句的翻译模式;例:设A是一个10×20的整型数组,w=4 ;例;例;例;例;表达式翻译中的其它问题;类型转换;类型转换;8.5 控制语句的翻译;布尔表达式的翻译;数值表示法;数值表示法;数值表示法;真假出口表示法;简单布尔表达式的翻译示例 例如:ab or cd and ef;真假出口表示法;真假出口表示法;混合模式布尔表达式的翻译;混合模式布尔表达式的翻译示例 例如:4+ab-c and d;回填;回填;布尔表达式的自底向上语法制导翻译模式;布尔表达式的自底向上语法制导翻译模式;布尔表达式的自底向上语法制导翻译模式;布尔表达式的自底向上语法制导翻译模式;布尔表达式的自底向上语法制导翻译模式;布尔表达式的自底向上语法制导翻译模式;例;控制流语句的翻译;控制流语句的翻译;控制流语句的翻译;控制流语句的翻译;控制流语句的翻译;控制流语句的翻译;例 8-4:翻译下列语句;生成的三
文档评论(0)