×

Mercury程序的基于区域的内存管理。 (英语) Zbl 1286.68056号

概要:基于区域的内存管理(RBMM)是编译时内存管理的一种形式,在函数编程界很有名。在本文中,我们描述了我们在逻辑编程语言Mercury中实现RBMM的工作。关于水星,一个有趣的地方是它是用强类型、模式和决定论系统设计的。这些系统不仅为Mercury程序员提供了一些直接的软件工程好处,例如自文档化代码和清晰的程序逻辑,还为语言实现者提供了大量对程序分析有用的信息。在这项工作中,我们利用这些信息开发程序分析,以确定数据在区域中的分布,并通过在其中插入必要的区域操作来转换Mercury程序。我们证明了我们的程序分析和转换的正确性。为了执行带注释的程序,我们实现了运行时支持,以解决回溯带来的两个主要挑战。首先,回溯可以要求在前向执行期间删除的区域“复活”;其次,在计算期间分配的任何已回溯的内存都必须立即恢复,而不必等待相关区域的生命周期结束。我们详细描述了这两个问题的解决方案。我们详细研究了我们的RBMM系统如何在选定的基准程序上执行,包括一些众所周知的RBMM疑难案例。即使有这些疑难案例,我们的支持RBMM的Mercury系统在18个基准中获得了15个基准的明显更快的运行时数,而Mercury基本系统具有Boehm运行时垃圾收集器,平均运行时加速率为24%,内存需求平均减少95%。事实上,我们的系统在某些程序中实现了最佳内存消耗。

MSC公司:

第68页第17页 逻辑编程
68甲15 编程语言理论

软件:

水银
PDF格式BibTeX公司 XML格式引用

参考文献:

[1] 内政部:10.1006/inco.1996.2613·Zbl 0876.68027号 ·doi:10.1006/inco.1996.2613
[2] 第17届逻辑程序设计国际会议记录第105页–(2001)
[3] 第18届逻辑程序设计国际会议记录第163页–(2002)
[4] 第二届记忆管理国际研讨会论文集第25页–(2000)
[5] ACM SIGPLAN编程语言设计与实现会议记录第243页–(2004)
[6] 声明性编程原理与实践研讨会论文集第175页–(2001)
[7] 第四届记忆管理国际研讨会论文集第85页–(2004)
[8] 第三届记忆管理国际研讨会论文集第150页–(2002年)
[9] ACM SIGPLAN编程语言设计与实现会议记录第296页–(1990)
[10] ACM SIGPLAN编程语言设计与实现会议记录第141页–(2002)
[11] 第十届基于逻辑的程序合成与转换国际研讨会论文集第86页–(2001)
[12] ACM SIGPLAN编程语言设计与实现会议记录第282页–(2002年)
[13] 数字对象标识码:10.1002/spe.4380180902·doi:10.1002/spe.4380180902
[14] ACM SIGPLAN编程语言设计与实现会议记录第313页–(1998年)
[15] 第23届ACM SIGPLAN编程语言原理研讨会会议记录第171页–(1996)
[16] ACM LISP和函数编程会议记录第218页–(1990)
[17] 《函数编程杂志》第18页第141页–(2008)·Zbl 1142.68019号 ·doi:10.1017/S0956796807006399
[18] ACM SIGPLAN编程语言设计与实现会议记录第174页–(1995)
[19] DOI:10.1023/B:LISP.000029446.78563.a4·Zbl 1075.68563号 ·doi:10.1023/B:LISP.000029446.78563.a4
[20] 第23届ACM SIGPLAN编程语言原理研讨会会议记录第32页–(1996)
[21] 第八届声明性语言实用方面国际研讨会论文集第150页–(2006)
[22] DOI:10.1016/S0743-1066(96)00068-4·兹比尔0877.68015 ·doi:10.1016/S0743-1066(96)00068-4
[23] 第七届记忆管理国际研讨会论文集第61页–(2008)
[24] 第11届ACM SIGPLAN声明式编程原理与实践研讨会论文集第161页–(2009)
[25] 第23届逻辑程序设计国际会议记录第317页–(2007)
[26] 《方案分析原则》(1999)·doi:10.1007/978-3-662-03811-6
[27] 第一届国际计算逻辑会议论文集pp 1255–(2000)
此参考列表基于出版商或数字数学图书馆提供的信息。其项与zbMATH标识符进行启发式匹配,可能包含数据转换错误。在某些情况下,zbMATH Open的数据对这些数据进行了补充/增强。这试图尽可能准确地反映原始论文中列出的参考文献,而不要求完整或完全匹配。