有哪些没有垃圾回收的函数式编程语言?

4

甚至在非功能性/非内存管理语言中也有大量功能性样式。有哪些技术可以处理类似中间垃圾的问题?清理惰性/缓存分配的内存。性能(因为如果您必须跟踪其进度以释放它(智能指针),则无法轻松地在不可变变量之间共享资源)

2个回答

2
您可能对具有线性或唯一类型的编程语言感兴趣,这些语言可以管理资源(尤其是内存)。最近的例子包括ATSLinearML
已经尝试过“基于区域的内存管理”(例如Cyclone),但它们还没有起飞--区域也允许(更早地)回收内存,但它们并不足够(例如,有些程序在使用基于区域的内存管理运行时会表现出无法接受的性能)。我认为这两种方案可以混合使用。
回到您的问题,一些ATS程序可以在没有垃圾回收的情况下运行。(我不会说这样的程序是以“函数式”样式编写的,例如SML,而是以命令式和一阶函数式样式的混合方式编写的。)

1
我能想到的唯一相关的事情是Mlton如何通过区域分析消除了垃圾收集的重要部分。理论上,可以实现一个编译器,将无法管理和未注释的指针泄漏视为错误,然后就能在完全手动内存管理环境中使用许多函数式编程技术。

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接