[中文正文内容]

2025年5月13日

时不时地,我会遇到一些论文、博客文章,或者(偶尔)视频,它们完全改变了我对编程语言和编译器中某个主题的思考方式。对于其中一些文章,我甚至不记得在阅读它_之前_我是如何思考这个想法的——它就是这么有影响力。

以下是一些文章,排名不分先后:

希望你喜欢这些阅读材料!

  1. 这篇文章中只有一个小错误:is_forwarded 应该检查该位是否为 0,而不是 1。正确的版本是:
int is_forwarded(struct gc_obj *obj) {
 return (obj->tag & NOT_FORWARDED_BIT) == 0;
}

“GC 和用户之间存在一个契约,用户同意始终在其对象的第一个字中设置 NOT_FORWARDED_BIT。”

  1. 无论如何,对于某些正确的定义。代码的正确性意味着什么?我在我的课程中专门有一个单元讨论这个问题,因为它是一个棘手的话题。