【发布时间】:2021-05-28 04:12:18
【问题描述】:
我需要某种算法来将垃圾收集添加到我的语言(正在编译为 c)中,并添加一条 free 语句或其他方式,这样它就不会出现内存泄漏。
是的,我看了Garbage collection when compiling to C,但我不明白答案,希望能得到更详细的答案。
编辑:例如,如果代码是
int *i = malloc(4);
在我的语言中,这应该被编译为
int *i = malloc(4);
然后
free(i);
一旦 i 不再使用或退出堆栈帧 谢谢
【问题讨论】:
-
你的语言实现是开源的吗? C代码在哪里?请给一些网址!
-
这不是大多数垃圾收集器的工作方式!
-
你能解释一下垃圾收集器是如何工作的吗,我很难理解,而且对编译器设计还很陌生
-
不,因为需要一整本书来解释 GC 的工作原理。我的回答提到了几本书,我没有时间再写一本关于垃圾收集的书。请随时向我发送一封电子邮件(书面英语、法语或俄语),其中包含多个段落(UTF-8 编码,HTML5 是可能的)
basile@starynkevitch.net -
...或者你可以从 GoLang 运行时窃取代码。
标签: c algorithm garbage-collection compiler-construction