Я чувствую, что мне не хватает чего-то больно простого, но я пытаюсь понять, как пометить и собрать мусорную сборку в проекте Andrew Appel Modern Compiler в книге ML, и там есть небольшой абзац внутри раздела Mark and Sweep под названием "Сторнирование указателя" (270).
В этот момент я думаю, что понимаю, как это работает. В двух словах, когда вы пересекаете график, вы переворачиваете все указатели, чтобы ваш предшественник находился внутри вашего набора полей. Затем, когда вы закончите с заданным элементом, вы переверните указатели назад, чтобы они снова указывали в нужное место.
Если это правильно, что именно он вас купит? Аппель пытается объяснить это, но я не полностью понимаю его формулировку.