除了 C 和 C++ 之外,是否还有其他语言可以在没有动态内存分配(即堆)特性的情况下显式使用。在一些关键任务嵌入式系统中,禁止使用堆来消除可能连续运行多年的软件的内存泄漏问题。一些特殊用途的编译器也明确禁用new
并malloc
强制执行这种做法。
我查看了一些函数式语言,即Timber和Erlang的嵌入式重点,但它们似乎都使用带有垃圾收集器的堆。 尽管静态类型, OCaml和Haskell也使用垃圾收集器,显然 Python、Ruby 和其他动态类型语言严重依赖垃圾收集和堆空间。
- 是否有任何高级语言支持这种不动态分配内存的要求?
- 考虑到它们的语言语义,功能性静态类型语言的编译器是否有可能这样做?