编译技术语义分析概述幻灯片.ppt

教学课件宣传PPT汇报资料演讲稿

抽象地址分配例子 (?,10) #define pai 3.14 // (?,10) Label L100,L200; (?,10) typedef arr{int a[10]}; (?,10) int x; (?,12) int a[5]; (?,22) float f( (?+1,4) float * x, (?+1,5) arr a, (?+1,15) arr * c, (?+1,16) void *G(), (?+1,18) float *F() (?+1,20) ){ (?+1,20+?+2) …} (?,16) 目标程序运行时的动作(1) 调用一个过/函时,建立新的活动记录;退出一个过/函时,删除它的当前活动记录。这些工作由目标程序来完成,分别分散在过程调用语句、过程入口和过程出口部分的目标代码中。 过/函调用语句所完成的工作 1)在新建立的活动记录里保存现役活动记录的始地址:0[top]:=sp; 2)在新建立的活动记录里记入先行Display表的始地址: 实在过程语句情形:3[top]:=sp+ Noff。 形式过程语句情形:3[top]:=(第二形参单元)。其中第二形参单元是给形参过程名分配的第二个单元。 3)把实参信息传送到新活动记录区的形参单元中; 4)转向相应过程的目标程序。 5)如果是函数调用,则把函数值读到某

文档评论(0)

1亿VIP精品文档

相关文档