垃圾收集在SML,Java,C,Pascal中

5 c java garbage-collection pascal sml

为什么垃圾收集很少在Pascal和C等语言中使用,而在SML和Java中它是非常重要的?

Joa*_*uer 10

Pascal和C传统上不使用垃圾收集.他们使用手动内存管理(malloc/ free对于C和new/ dispose在Pascal中).

垃圾收集可以添加到大多数没有它们的语言中,但通常需要相当大的费用.用于C/C++的垃圾收集器的一个例子是Boehm GC.

另一方面,Java从头开始设计了垃圾收集.

  • 实际上,标准pascal可能比C更容易GC,因为它例如不允许指针数学.但最重要的是,如果运行时系统无法移动分配,那么GC的效率会低得多.我假设约阿希姆用"基础"位暗示了这一点. (2认同)