在堆栈或堆上显式分配内存

时间:2016-08-04 14:51:37

标签: memory memory-management functional-programming

我正在寻找一种现代编程语言,它允许指定分配给定类型,原始或复杂变量的位置。 C ++实现了这种行为:

堆栈

auto stackAllocatedVal = MyClass(params);

auto heapAllocatedPtr = new MyClass(params);

void* heapAllocatedSpacePtr = malloc(SIZE);
//now we can fill the allocated space on heap

我所知道的能够使用的语言是c ++和Rust。但我寻求更实用的功能。有什么建议吗?

1 个答案:

答案 0 :(得分:0)

MLKit with regions实现了一种函数式编程语言Standard ML,该语言扩展了基于区域的内存管理,可能与您正在寻找的内容接近。一般来说,这里的主要技术挑战是保证手动内存管理下的安全性,例如当对象X在另一个指向X的对象之前被解除分配时