Представление объектов кучи для языка ОО

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

Целевой архитектурой для моего компилятора является 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

Другие вопросы по тегам