编译原理 第10章 目标程序运行时的存储组织.pdf
上传人:qw****27 上传时间:2024-09-12 格式:PDF 页数:6 大小:118KB 金币:15 举报 版权申诉
预览加载中,请您耐心等待几秒...

编译原理 第10章 目标程序运行时的存储组织.pdf

编译原理第10章目标程序运行时的存储组织.pdf

预览

在线预览结束,喜欢就下载吧,查找使用更方便

15 金币

下载此文档

如果您无法下载资料,请参考说明:

1、部分资料下载需要金币,请确保您的账户上有足够的金币

2、已购买过的文档,再次下载不重复扣费

3、资料包下载后请先用软件解压,在使用对应软件打开

《编译原理》课后习题答案第十章第10章目标程序运行时的存储组织第5题:过程参数的传递方式有几种?简述“传地址”和“传值”的实现原理。答案:参数的传递方式有下述几种:“传值”--CallbyValue。“传地址”--CallbyAddress。“换名”--CallbyName。“得结果”--Value-result。“传值”方式,这是最简单的参数传递方法。即将实参计算出它的值,然后把它传给被调过程。具体来讲是这样的:1.形式参数当作过程的局部变量处理,即在被调过程的活动记录中开辟了形参的存储空间,这些存储位置即是我们所说的实参或形式单元。2.调用过程计算实参的值,并将它们的右值(r-value)放在为形式单元开辟的空间中。3.被调用过程执行时,就像使用局部变量一样使用这些形式单元。“传地址”方式,也称作传地址,或引用调用。调用过程传给被调过程的是指针,指向实参存储位置的指针。1.如实参是一个名字或是具有左值的表达式,则左值本身传递过去。2.如实参是一个表达式,比方a+b或2,而没有左值,则表达式先求值,并存入某一位置,然后该位置的地址传递过去。3.被调过程中对形式参数的任何引用和赋值都通过传递到被调过程的指针被处理成间接访问。盛威网(www.snwei.com)专业的计算机学习网站1《编译原理》课后习题答案第十章第6题:下面的程序执行时输出的a分别是什么?若(1)参数的传递办法为“传值”。(2)参数的传递办法为“传地址”。programmain(input,output);procedurep(x,y,z);beginy∶=y+1;z=z+x;∶end;begina=2;∶b∶=3;p(a+b,a,a);printaend.答案:(1)参数的传递办法为"传值"时,a为2。(2)参数的传递办法为"传地址",a为7。盛威网(www.snwei.com)专业的计算机学习网站2《编译原理》课后习题答案第十章附加题问题1:下面是一个Pascal程序programPP(input,output)varK:integer;functionF(N:integer):integerbeginifN<=0thenF:=1elseF:=N*F(N-1);end;beginK:=F(10);...end;当第二次(递归地)进入F后,DISPLAY的内容是什么?当时整个运行栈的内容是什么?答案:盛威网(www.snwei.com)专业的计算机学习网站3《编译原理》课后习题答案第十章问题2:对如下的Pascal程序,画出程序执行到(1)和(2)点时的运行栈。programTr(input,output);vari:integer;d:integer;procedureA(k:real);varp:char;procedureB;varc:char;begin...(1)...end;{B}procedureC;vart:real;begin...(2)...end;{C}begin.....B;C;.....end;{A}begin{main}...A(d);...end.答案:程序执行到(1)点时的流程是:①主程序激活A②A激活B程序执行到(2)点时的流程是:①主程序激活A②A激活B盛威网(www.snwei.com)专业的计算机学习网站4《编译原理》课后习题答案第十章③B执行结束返回A④A激活C问题3:有如下示意的Pascal源程序programmain;vara,b,c:integer;procedureX(i,j:integer);vard,e:real;procedureY;varf,g:real;begin...end;{Y}procedureZ(k:integer);varh,i,j:real;begin...end;{Z}begin.....10:Y;.....11:Z;.....end;{X}begin.....X(a,b);.....end.{main}并已知在运行时刻,以过程为单位对程序中的变量进行动态存储分配。当运行主程序而调用过程语句X时,试分别给出以下时刻的运行栈的内容和DISPLAY的内容。(1)已开始而尚未执行完毕的标号为10的语句。(2)已开始而尚未执行完毕的标号为11的语句。盛威网(www.snwei.com)专业的计算机学习网站5《编译原理》课后习