编译原理基础(刘坚) 第5章.pptVIP

  • 5
  • 0
  • 约 79页
  • 2017-08-19 发布于广东
  • 举报
FORTRAN语言可以完全采用静态存储分配策略,因为FORTRAN满足上述限制。但是,FORTRAN中的等价片与公用区机制,使得分配比较复杂。允许分别编译的程序设计语言,分别编译模块中的数据定义模块(特别是全程引用的数据),也可以采用静态分配策略,因为它们一般在整个程序运行的期间是被共享的。 2.栈分配策略 栈分配策略是一种动态分配的策略,它的基础是活动的控制栈,所有与活动同生存期的数据均可以采用栈分配策略。当活动处在生存期时,相应的数据被分配,生存期结束后,数据被撤销。对于这样的数据,他们的分配与撤销实际上就是控制栈上活动记录的分配与撤销。活动记录被分配在栈数据区中,栈顶由统一的栈顶指针top指示。活动记录的大小如果是L,则活动开始时(确切讲应是开始前),top增加L,活动结束后,top减少L。 对于静态分配策略分配的数据,栈分配策略均可进行分配。因为静态分配数据的特征是编译时可以确定大小,所以栈分配策略可以把这些静态可确定的数据在编译时就安排在栈的底部。而对于静态存储分配无法处理的递归程序调用问题和动态数组问题,均可以采用栈分配的策略来解决,因为递归调用的活动的活动记录的分配和撤销,可以在程序运行时(活动活动时)动态地添加到栈顶,或是从栈顶撤销;动态数组的存储空间大小,也可以根据保存在活动记录中的内情向量信息计算出来,然后动态地添

您可能关注的文档

文档评论(0)

1亿VIP精品文档

相关文档