通用编程语言没有堆可行吗?

Dan*_*Dan 7 heap programming-languages

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

我们的想法是,您可以获得更好的类型安全性,以及"免费垃圾收集"而无需实际拥有垃圾收集器.

我不熟悉太多的脚本语言,所以如果已经这样做了,请随意指出.

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

jør*_*sen 0

根本没有要求您绝对必须实现堆栈或堆。例如,C 也不指定堆栈。事实上,在许多语言中,您甚至不需要关心,您只需指定为变量腾出空间的实现(编译器、解释器或其他),以及可能需要多长时间。

您的语言的解释器(假设有一个)可以做到int main(void) { char memory[1048576]; run_script_from_stdin_using(memory); }。您甚至可以调用 mmap(2) 来获取匿名内存块,并用它来存储变量。对象所在的位置并不重要,而且堆栈/堆这些术语的含义值得怀疑,因为它们通常可以互换。