Представление объектов кучи для языка ОО
В рамках магистерской работы я пишу компилятор для объектно-ориентированного языка, который был разработан в моем домашнем университете. В настоящее время компилятор выводит ассемблер, который работает на виртуальной машине. Виртуальная машина обрабатывает все вещи, такие как операции со стеком, генерация объектов, управление кучей и сборка мусора.
Целевой архитектурой для моего компилятора является MIPS-подобный процессор.
Я ищу стратегии для разработки макета объекта и идеи для реализации и запуска сборки мусора во время выполнения. Я, конечно, мог бы проанализировать, как GCC реализует это с C++, но я бы предпочел указать на некоторые хорошие публикации / ресурсы.
1 ответ
Читайте о внутреннем управлении объектами Python. Они используют подсчет ссылок и избавляются от объектов, когда счетчик ссылок становится равным нулю.
Вот более старый (но все же полезный) документ: http://docs.python.org/release/2.5.2/ext/refcounts.html
Вот общие вещи: http://en.wikipedia.org/wiki/Reference_counting
И еще: http://code.google.com/p/augustus/wiki/OptionalGarbageCollection