如果您无法下载资料,请参考说明:
1、部分资料下载需要金币,请确保您的账户上有足够的金币
2、已购买过的文档,再次下载不重复扣费
3、资料包下载后请先用软件解压,在使用对应软件打开
5.8过程说明和过程调用的翻译5.8.1过程说明的翻译过程说明的翻译(续)闭说明过程的处理过程说明语句的文法5.8.2实参和形参间的信息传递形实结合的方式2.值调用(Callbyvalue)3.结果调用(Callbyresult)和值结果调用(Callbyvalue-result)5.8.3过程语句的翻译翻译过程调用语句的方案翻译过程调用语句的方案ArgList→Expr{$$.Count=1;/*Count属性用于参数个数计数*/$$.QUEUE=malloc(sizeof(int));/*首次申请空间*/$$.QUEUE[0]=$1.PLACE;/*将第一实参的“地址”入队*/}|ArgList,Expr{$$.Count=$1.Count+1;/*参数个数计数加1*/$$.QUEUE=$1.QUEUE;$$.QUEUE=realloc($$.QUEUE,$$.Count*sizeof(int));/*为新参数申请空间,即增大原有空间*/$$.QUEUE[$$.Count-1]=$3.PLACE;/*在队列尾部记录新实参的“地址”*/}过程调用语句的翻译文法函数引用翻译5.8.4关于形实结合的进一步讨论programexam(input,output);varu:real;functionp1(a:real;functionf1:real):real;beginp1:=f1(a)end;procedurep2(functionf2:real;x:real);vary:real;functionp3(b:real;functionf3:real):real;beginp2:=f3(b)end;beginy:=p1(x,f2);writeln(y)end;beginread(u);p2(p1,u)end.复杂情况下形实结合的处理要点复杂情况下形实结合的处理要点复杂情况下形实结合的处理要点形参