2011-05-20 45 views
3

或者非功能/非内存管理语言中的功能更强大的风格。 有哪些技术可以解决中间垃圾等问题?在lazynizess/thunk分配的内存后清理。性能(因为你不能轻易地共享资源之间的不可变变量,如果你必须跟踪它的进度释放它(智能指针?)是否有任何功能语言没有垃圾回收

回答

2

您可能会对线性或唯一类型的编程语言感兴趣,它们可以管理资源(特别是内存)。最近的例子:ATSLinearML。在“基于区域的内存管理”(例如Cyclone)方面已经有人尝试过,但它们还没有被提出 - 区域也允许(早期的)内存回收,但它们还不够(例如, ,有些程序在运行基于区域的内存管理时会表现出令人无法接受的性能)。我想,这两种方案可能是混合的。

回到你的问题,一些ATS程序可以运行而无需垃圾回收。 (我不会说这样的程序是用“功能性”风格编写的,例如SML,但是是一种强制性和一阶功能风格)。

1

我能想到的唯一相关的事情是如何Mlton是如何消除垃圾的重要部分从理论上讲,应该有可能实现一个编译器,它将把不可管理和未注释的指针泄漏视为错误,然后人们可以在完全手动的内存中使用许多函数式编程技术管理设置

+1

http://www.itu.dk/research /mlkit/index.php/Main_Page也是这样 – cannedprimates 2011-05-20 13:18:24