5

非解释语言是否有可能拥有垃圾收集器。解释型语言让解释器逐行执行程序,因此解释器也可以提供带有 GC 的运行时。但是是否有可能拥有任何其他语言的垃圾收集器而无需在代码本身中构建 GC?

4

8 回答 8

11

垃圾回收只需要对指针变量进行特殊标记,以便运行时可以识别它们并用于垃圾回收。它与解释/编译无关,而是需要特殊的运行时并为每个变量存储额外的数据。

于 2009-05-06T10:26:19.923 回答
6

好吧,.NET 语言(发出到 IL - C#、VB.NET、MC++ 等)不会被解释(特别是如果你使用 NGEN) - 并且具有完整的垃圾收集。

同样,Java。

于 2009-05-06T10:26:24.790 回答
5

是的 - http://www.hpl.hp.com/personal/Hans_Boehm/gc/

于 2009-05-06T10:38:34.247 回答
3

有关编译语言的实际实现,在本例中为 C 和/或 C++,请参阅位于http://www.hpl.hp.com/personal/Hans_Boehm/gc/的 Boehm GC

于 2009-05-06T10:59:49.000 回答
3

Haskell 具有垃圾收集功能,无论是编译为本机代码还是解释。

于 2009-07-14T08:47:01.103 回答
2

新的 C++0x 包括使垃圾收集的实现更容易的功能。例如看这个采访

于 2009-05-06T10:31:41.660 回答
0

是的。

当智能指针引用计数变为零时,具有智能指针实现的 C++ 将进行垃圾收集。

你有垃圾收集。你不是自己建造的。

于 2009-05-06T10:25:10.817 回答
0

Objective-C 2 现在有垃圾收集,并且还有可用于 C++ 的垃圾收集库。

我认为只要有语言允许您检查对象,就可以遍历对象树。

于 2009-05-06T10:26:58.783 回答