跳到主要内容
10.5555/914060旅游指南书籍页面出版物页面论文acm-pubtype公司
基于对象生存期的动态内存分配技术
出版商:
  • 普渡大学
  • 印第安纳州西拉斐特计算机科学系
  • 美国
订单号:AAI8807667号
页:
154
文献计量学
跳过抽象节
摘要

程序与特定属性的绑定是从一组可能的属性中选择此类属性。一般来说,延迟绑定时间会给语言用户带来更大的灵活性,但会对运行时效率产生负面影响。一种理想的语言处理器的功能之一应该是确定程序的最早绑定时间,这与程序的正确执行是一致的。这就是我们所说的绑定时间优化。

本文研究具有动态分配对象的强类型语言中绑定时间优化的存储管理方面。我们的优化技术基于这样的观察:虽然全局堆分配通常是用于实现引用变量的唯一技术,但实现高级数据结构所需的大多数功能并不要求堆是全局的。需要全局堆的唯一特征是,对象的生存期与特定过程无关,因此在编译时是未知的。

我们提供了几种内存分配技术,当对象的生存期信息可用时,可以使用这些技术来代替全局堆分配。我们考虑一大类结构化对象,包括递归类型。我们的技术基于与堆栈上的过程激活记录相关联的“本地堆”概念。

为了确定对象生存期的上限,我们首先引入了一种运行时对象的编译时近似值,称为源。然后,我们为过程间问题开发了一种流分析算法,用于确定源可以在程序的调用粒度中传播多远。这个问题需要从两个层面收集信息。在过程间级别,我们提供了一种算法来传播返回到调用过程的源的名称。在过程内水平,我们检查每个过程中的源流,以确定哪些源到达出口。我们使用正式的数据流分析框架模型提出了这两种算法。因为这两个级别是独立的,所以我们的算法处理递归过程而不重新计算过程内信息。

贡献者
  • 威廉姆斯学院

建议