- 1、本文档共79页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
第10章目标程序运行时的组织
;概述-代码生成解决语义gap
;概述;概述
;运行环境和存储分配
设计分析;决定运行管理复杂程度的因素——源语言本身;术语;例procedureA(m,n:integer);
beginrealz;
arrayB[m:n];
begin
·
·
·
end;
end;;数据表示(各种数据对象的存储分配);数据表示(固定长度,直接或间接表示);l;目标程序运行时的存储组织;l;简单的栈式分配方案
;嵌套过程语言的栈式
分配方案
;关键技术:解决对非局部量的引用(存取)。
设法跟踪每个外层过程的最新活动记录AR的位置。
跟踪办法:
1.用静态链(如PL/0的SL)。
2.用DISPLAY表。
;consta=10;
varb,c;
procedurep;
begin
c:=b+a;
end;
begin
read(b);
whileb#0do
begin
callp;
write(2*c);
read(b);
end
end.
;目标代码解释执行时数据栈的布局(运行栈的存储分配);目标代码的解释执行运行栈S;解决对非局部量的引用(存取)
用Display表;用Display表的方案;用Display表的方案;DISPLAY表的维护和建立
;当过程的层次为n,它的display为n+1个值。
一个过程被调用时,从调用过程的DISPLAY表中自下向上抄录n个SP值,再加上本层的SP值。
全局DISPLAY地址;分程序结构
ProcedureA(m,n);integerm,n;
B1:beginrealz;arrayB[m:n];
B2:beginreald,e;
L3:2
end;
B4:beginarrayC[1:m];1
B5:beginreale;
L6:54
end;
end;
L8:end;;分程序结构的存储
分配方案
;按照过程处理办法,意味着必须一层一层地通过“返回”来恢复所要到达的那个分程序的数据区,但不能直接到达。
例如:如果有一个从第5层分程序转出到达第1层分程序的标号L,虽然在第5层分程序工作时知道L所属的层数,我们极易从DISPLAY中获得第1层分程序的活动记录基址(SP),但是怎么知道第1层分程序进入时的TOP呢?唯一的办法是从5,4,3和2各层顺序退出。但这种办法是很浪费时间的。
;为了解决上述问题,可采取两种措施。第一,对每个过程或分程序都建立有自己的栈顶指示器TOP,代替原来仅有过程的栈顶指示器,每个TOP的值保存在各自活动记录中。这样,上述的第二个问题便可解决。第二,不把分程序看作“无参过程”,每个分程序享用包围它的那个最近过程的DISPLAY。每个分程序都隶属于某个确定的过程,分程序的层次是相对于它所属的那个过程进行编号的。
;:;3.参数个数和形式单元
4.DISPAY表。
5.过程所辖的各分程序的局部数据单元。对于每个分程序来说,它们包括:
(1)分程序的TOP值。当进入分程序时它含现行栈顶地址,以后,用来定义栈的新高度(分程序的TOP值);
(2)分程序的局部变量,数组内情向量和临时工作单元。
;B;数;参数传递
;(1)programreference(input,output);
(2)vara,b:integer;
(3)procedureswap({
您可能关注的文档
- 编译原理第3章.ppt
- 编译原理---第4章-语法分析和语法分析程序.pptx
- 编译原理第9篇.ppt
- 编译原理第二章.ppt
- 编译原理第三章.ppt
- 编译原理第四章.ppt
- 编译原理第一章编译原理引论.ppt
- 编译原理讲义(第二章文法与语言).ppt
- 编译原理(清华大学).ppt
- 编译原理(清华大学).pptx
- [吉林]2023年吉林省直中小学“强师”招聘34人笔试历年高频考点(难、易错点)附带答案详解.docx
- [台州]浙江台州市黄岩区市场监督管理局招聘编外工作人员笔试历年高频考点(难、易错点)附带答案详解.docx
- [台州]浙江台州市建设工程质量检测中心招聘编制外用工4人笔试历年高频考点(难、易错点)附带答案详解.docx
- [台州]浙江台州椒江区大陈镇综合执法队招聘笔试历年高频考点(难、易错点)附带答案详解.docx
- [合肥]2023年安徽合肥市公安局第二批招聘警务辅助人员543人笔试历年高频考点(难、易错点)附带答案详解.docx
- [吉安]2023年江西吉安市大学生乡村医生专项招聘笔试历年高频考点(难、易错点)附带答案详解.docx
- [吉安]2024年江西吉安市中心人民医院招聘卫生专业技术人才73人笔试历年高频考点(难、易错点)附带答案详解.docx
- [合肥]2023年安徽医科大学管理岗和专业技术辅助岗招聘46人笔试历年高频考点(难、易错点)附带答案详解.docx
- [吉安]江西吉安市青原区人民医院人才引进笔试历年高频考点(难、易错点)附带答案详解.docx
- [台州]浙江台州温岭市交通运输局招聘编外人员笔试历年高频考点(难、易错点)附带答案详解.docx
文档评论(0)