- 1、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
第八章 运行时存储空间组织;(1) program sort(input, output) (2) var a: array[0..10] of integer; (3) procedure readarray; (4) var i: integer; (5) begin (6) for i:=1 to 9 do read(a[i]) (7) end; (8) function partition(y, z:integer):integer; (9) var i:integer; (10) begin ...... (11) end;;(12) procedure quicksort(m, n:integer); (13) var i:integer; (14) begin (15) if (nm) then begin (16) i:=partition(m, n ); (17) quicksort(m, i-1 ); (18) quicksort(i+1, n ) (19) end; (20) end; (21) begin (22) a[0]:=-9999; a[10]:=9999; (23) readarray; (24) quicksort(1, 9 ) (25) end.;参数传递;参数传递方式;procedure swap (var m:integer; var n: integer); var i:integer; begin i:=m; m:=n; n:=i; end;参数传递方式;参数传递方式;参数传递方式;PROGRAM EX … var A:integer; PROCEDURE P(B:integer) … var A:integer; BEGIN A:=0; B:=B+1; A:=A+B; END;;例: … procedure P(w,x,y,z); begin y := y*w; z := z+x; end begin a := 5; b := 3; P(a+b,a-b,a,a); write(a); end;;8.2 运行时存储器的划分 ;一个程序在运行时刻的内存划分:;8.2.2 活动记录;对任何局部变量X的引用可表示为变址访问: dx[SP] dx: 变量X相对于活动记录起点的地址,在编译时可确定。;连接数据 返回地址 动态链:指向调用该过程前的必威体育精装版活动记录地址的指针。 静态链:指向静态直接外层必威体育精装版活动记录地址的指针,用来访问非局部数据。;形式单元:存放相应的实在参数的地址或值。 局部数据区:局部变量、内情向量、临时工作单元(如存放对表达式求值的结果)。; 静态分配策略(FORTRAN) 如果在编译时能确定数据空间的大小,则可采用静态分配方法:在编译时刻为每个数据项目确定出在运行时刻的存储空间中的位置。 动态分配策略(PASCAL) 如果在编译时不能确定运行时数据空间的大小,则必须采用动态分配方法。允许递归过程和动态申请释放内存。 栈式动态分配 堆式动态分配;PROGRAM MAIN … integer X,Y COMMON /C/A,B … END SUBROUTINE SUB1 … real X,Z COMMON /C/A1,B1 … END;8.3 静态存储管理;每个数据区有一个编号,地址分配时,在符号表中,对每个数据名登记其所属数据区编号及在该区中的相对位置。 每个局部数据区的内容及存放次序:;考虑子程序段: SUBROUTINE SWAP(A,B) T=A A=B B=T RETURN END;8.4 一个简单栈式存储分配; 全局数据说明 Main( ) { Main中的数据说明 } void R( ) { R中的数据说明 } … void Q( ) { Q中的数据说明 };每个过程的活动记录内容如图:;过程调用的四元式序列: par T1 par T2 … par Tn call P,n;1) 每个par Ti(i=1,2,…n)可直接翻译成如下指令: (i+3)[TOP]:= Ti (传值) (i+3)[TOP]:=addr(Ti) (传地址) 2) call P,n 被翻译成: 1[TOP]:=SP (保护现行SP) 3[TOP]:=n (传递参数个数) J
您可能关注的文档
最近下载
- 企业拓展训练培训服务方案.docx VIP
- 抗风湿药的分类与临床应用.pptx VIP
- 四上企业统计培训课件.pptx VIP
- 四上企业入库培训课件.pptx VIP
- 7郭永康+光在晶体和液晶中传播-4.ppt VIP
- 7郭永康光在晶体和液晶中传播2.ppt VIP
- 西门子SINUMERIK 802S base line SINUMERIK 802C base line简明操作与编程(中文).pdf
- 2024-2025统编版六年级上册道德与法治期末试题汇编:连线题(含答案).pdf VIP
- 李镇西《做最好的家长》读书交流.pptx VIP
- (必威体育精装版)江苏省七年级下学期第一次月考英语试卷.pdf VIP
文档评论(0)