Представление объектов кучи для языка ОО - PullRequest
2 голосов
/ 09 апреля 2011

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

Целевой архитектурой для моего компилятора является MIPS-подобный процессор.

Я ищу стратегии для разработки макета объекта и идеи для реализации и запуска сборки мусора во время выполнения.Конечно, я мог бы проанализировать, как GCC реализует это с помощью C ++, но я бы предпочел указать на некоторые хорошие публикации / ресурсы.

1 Ответ

1 голос
/ 09 апреля 2011

Ознакомьтесь с внутренним управлением объектами в 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

...