programming-languages - 通用编程语言没有堆是否可行?

标签 programming-languages heap

就目前而言,这个问题不适合我们的问答形式。我们希望答案得到事实、引用或专业知识的支持,但这个问题可能会引起辩论、争论、投票或扩展讨论。如果您觉得这个问题可以改进并可能重新打开,visit the help center为指导。




9年前关闭。




我正在研究创建一种编程语言。我想知道的是,在包含类引用结构的语言中,没有 new/malloc 运算符是否可行?也就是说,所有变量都存储在堆栈中的某处或静态分配。

这个想法是您可以获得更好的类型安全性,以及“免费垃圾收集”,而实际上没有垃圾收集器。

我不熟悉太多脚本语言,所以如果有人已经这样做了,请随时指出。

(动态/未知大小的数据结构将由动态列表结构处理,该结构将(显然)在用户背后的堆上处理。)

最佳答案

Fortran 一直是一种“通用”语言,但它不支持任何开箱即用的动态内存分配。

通常的做法是静态分配一个大数组并在其上模拟您自己的内存管理。

如果您正在寻找一种摆脱 GC 和手动内存管理的方法,那么 region analysis可以提供帮助,但仅限于少数特定情况。

关于programming-languages - 通用编程语言没有堆是否可行?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8526198/

相关文章:

if-statement - 写 `if (foobar == ("this"|| "that") )` to check if foobar is equal to "this"或 "that"是否支持任何主要语言?

programming-languages - 使用哪种编程范例?

java - 将回调的结果存储到变量

programming-languages - 没有原始 SIMD 数据类型的基本原理

algorithm - CLRS 是否完全准确地指出 max-heapify 运行时间由重复 `T(n) = T(2n/3) + O(1)` 描述?

c++ - 二进制最小堆 : Printing unstored values

Java - 我的二进制堆实现有多好?

language-agnostic - 查询语言的运算符 OR 的优先级是否应该高于 AND 的优先级?

data-structures - Heap pop 操作的时间复杂度

algorithm - 从整数流中查找运行中位数