在最近的一个周末,我开始编写自己的脚本语言,以获取学习经验和高中毕业时的简历。到目前为止一切都很好,我可以解析具有基本类型(null、布尔值、数字和字符串)的变量和具有运算符优先级的数学表达式,并且有一个基本的标记和清除垃圾收集器(在完成标记/清除收集器之后我将实现一个分代垃圾收集器,我知道天真的标记/扫描不是很快)。不过,我不确定如何为垃圾收集器存储引用的对象。到目前为止,我有一个 GCObject 类,它存储一个指向它的内存的指针,以及它是否被标记。我应该存储一个链接列表吗?类中引用的对象?我查看了其他语言的垃圾收集器,但我没有看到每个 GCObject 的引用链接列表,所以这让我感到困惑。
TLDR:如何将其他对象引用的对象存储在标记和清除垃圾收集器中?我是否只在我的所有 GCObjects 中存储对象的链接列表?
多谢你们。