作为我硕士论文的一部分,我正在为我家乡大学开发的面向对象语言编写一个编译器。当前编译器输出在虚拟机上运行的汇编程序。虚拟机处理所有事情,如堆栈操作、对象生成、堆管理和垃圾收集。
我的编译器的目标架构是类似 MIPS 的 CPU。
我正在寻找开发对象布局的策略以及在运行时实现和触发垃圾收集的想法。我当然可以分析 GCC 如何使用 C++ 实现这一点,但我更愿意指出一些好的出版物/资源。
作为我硕士论文的一部分,我正在为我家乡大学开发的面向对象语言编写一个编译器。当前编译器输出在虚拟机上运行的汇编程序。虚拟机处理所有事情,如堆栈操作、对象生成、堆管理和垃圾收集。
我的编译器的目标架构是类似 MIPS 的 CPU。
我正在寻找开发对象布局的策略以及在运行时实现和触发垃圾收集的想法。我当然可以分析 GCC 如何使用 C++ 实现这一点,但我更愿意指出一些好的出版物/资源。
阅读 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