Может ли кто-нибудь указать мне хороший источник того, как реализовать сборку мусора? Я делаю lisp -подобный интерпретируемый язык. В настоящее время он использует подсчет ссылок, но, разумеется, это не позволяет освободить циркулярно зависимые объекты.
Я читал метку и разметку, трехцветную маркировку, перемещение и неподвижность, инкремент и стоп-мир, но... Я не знаю, как лучше всего сохранить объекты, аккуратно разделенные на множества, в то время как сохраняя накладные расходы на предмет объекта как минимум, или как делать вещи постепенно.
Я прочитал несколько языков, в которых подсчет ссылок использует круговое обнаружение ссылок, которое я мог бы использовать. Я знаю, что могу использовать свободно доступных коллекционеров, таких как Бем, но я хотел бы узнать, как это сделать сам.
Я был бы признателен за любые онлайн-материалы с каким-то учебным пособием или помощью для людей, не имеющих опыта в этой теме, как я.