- 1、本文档共46页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
第10章 目标程序运行时的组织;10.1 概述;存储管理复杂度取决于源语言本身,具体包括:
允许的数据类型的多少?
语言中允许的数据项是: 静态确定?动态确定?
程序决定名字的作用域的规则和结构
段结构?
过程定义不嵌套?只允许过程递归调用?
分程序结构: 分程序嵌套?过程定义嵌套? ; 目标代码区
静态数据区
Stack
heap
;2、存储分配策略:
(1)静态存储分配——在编译时能确定目标程序运行中所需的全部数据空间的大小,编译时安排好目标程序运行时的全部数据空间,确定每个数据对象的存储位置。;;(2)动态存储分配——在运行阶段动态地为源程序中的量分配存储空间。(栈式、堆式)
注:1)若某程序设计语言允许过程递归调用,而且允许使用可变数组,那么在编译时就不可能完全为其数据项目分配存储单元,必须采取动态存储分配策略。
;;3、过程活动:一个过程的活动指的是该过程的一次执行。
4、活动记录(AR):一个过程的一次执行所需要的信息使用一个连续的存储区来管理,这个区(块)叫做一个活动记录。此记录含有连接数据、形式单元、局部变量、局部数组的内情向量和临时工作单元等。
;对任何局部变量X的引用可表示为变址访问:
dx[SP]
dx: 变量X相对于活动记录起点的地址,在编译时可确定。;连接数据
返回地址
动态链:指向调用该过程的最新活动记录地址的指针。
静态链:指向直接外层最新活动记录地址的指针,用来访问非局部数据。;形式单元:存放相应的实参的地址或值。
局部数据区:局部变量、内情向量、临时工作单元(如存放对表达式求值的结果)。;临时单元
;
1、 call P 被翻译成:
1[TOP]:=SP (保护现行SP)
JSR P (转子指令);2、转进过程P后,首先应执行下述指令:
SP:=TOP+1 (定义新的SP)
1[SP]:=返回地址 (保护返回地址)
TOP:=TOP+L (新TOP)
L:过程P的活动记录所需单元数,
在编译时可确定。
;3、 过程返回时,应执行下列指令:
X:=2[TOP] (把返回地址取到X中)
TOP:=SP-1 (恢复调用前TOP)
SP:=0[SP] (恢复调用前SP)
UJ X (按X返回)
; 10.2 栈式存储??配的实现; 例:
Main( )
{
Main中的数据说明
}
proc R( )
{
R中的数据说明
}
…
proc Q( )
{
Q中的数据说明
};
R的数组区
R的活动记录
Q的活动记录
主程序全局
数据区;二、嵌套过程语言的栈式分配的实现
1、程序结构特点:语言的定义允许嵌套,一个过程可以引用包围它的任一外层过程所定义的标识符(如变量,数组或过程等)(如PASCAL语言) 。
如何才能引用外层数据?;;PASCAL
PASCAL程序本身可以看成是一个操作系统所调用的过程,过程可以嵌套和递归。
一个PASCAL过程:
过程头;
说明段(由一系列的说明语句组成);
begin
执行体(由一系列的执行语句组成);
end;作用域:一个名字能被使用的区域范围称作这个名字的作用域。
允许同一个标识符在不同的过程中代表不同的名字。
名字作用域规则--最近嵌套原则
一个在子程序B1中说明的名字X只在B1中有效(局部于B1);
如果B2是B1的一个内层子程序且B2中对标识符X没有新的说明,则原来的名字X在B2中仍然有效。如果B2对X重新作了说明,那么,B2对X的任何引用都是指重新说明过的这个X。;program main
var A, B : real;
…
procedure P1
var B:boolean;
…
begin
…
end
procedure P2
var A:integer;
…
begin
…
end
begin
…
end; 非局部名字的访问的实现 ;(1) 用静态链;;main
p1
p2
p3
p4 ;2、用Display表;说明:1、由于过程的层数可以静态确定,因此每个过程的Display表的体积在编译时即可以确定。
2、某过程p是在层次为i的过程q内定义的,并且q是包围p的直接外层,那么p的过程层数为i+1。
;pro
您可能关注的文档
- 第2章单相正弦交流电路技巧.ppt
- 第4-3-5基本放大电路技巧.ppt
- 第2章单元技巧.ppt
- 第4-5章数据安全性与完整性技巧.ppt
- 第4部分传感器原理3-电感式技巧.ppt
- 第2章-导热的理论基础技巧.ppt
- 第4部分传感器原理5-光电磁敏半导体技巧.ppt
- 第2章-导热理论基础以及稳态导热技巧.ppt
- 第4部分微波网络基础技巧.ppt
- 第4次课_与非门及外特征技巧.pptx
- 2025至2030中国数字音频工作站(DAW)行业发展趋势分析与未来投资战略咨询研究报告.docx
- 2025至2030中国数据安全服务行业市场深度分析及前景趋势与投资报告.docx
- 2025至2030中国数控立式车床、数控立式车削中心行业产业运行态势及投资规划深度研究报告.docx
- 2025至2030中国披肩产业运行态势及投资规划深度研究报告.docx
- 2025至2030中国数字影院行业产业运行态势及投资规划深度研究报告.docx
- 2025至2030中国放射治疗和诊断成像设备行业产业运行态势及投资规划深度研究报告.docx
- 2025至2030中国文化用品行业产业运行态势及投资规划深度研究报告.docx
- 2025至2030中国新型城镇化信贷行业市场发展分析及产业运行态势及投资规划深度研究报告.docx
- 2025至2030中国晶质石墨行业发展趋势分析与未来投资战略咨询研究报告.docx
- 2025至2030中国智慧农业行业市场发展现状及前景趋势与行业项目调研及市场前景预测评估报告.docx
最近下载
- 2023年苏州卫生职业技术学院单招职业适应性测试模拟试题及答案解析.docx VIP
- 大疆 DJI Matrice 4 系列 - 用户手册 v1.0.pdf
- 2025年北京海淀区九年级中考二模英语试卷试题(含答案详解).pdf VIP
- 供应商评审表(代理商及贸易商类-现场评审).pdf VIP
- 2024年苏州卫生职业技术学院单招职业适应性测试模拟试题及答案解析.docx VIP
- 2023年陕西省初中学业水平考试生物、地理试卷含答案.docx
- 11BS3 给水工程(华北标图集).docx
- 2025年苏州卫生职业技术学院单招综合素质考试模拟试题及答案解析.docx VIP
- 2025年苏州卫生职业技术学院单招职业适应性测试模拟试题及答案解析.docx VIP
- HGT 4120-2024《工业氢氧化钙》.pdf
文档评论(0)