Garbage Collection System for Mercury

From Simple Sci Wiki
Jump to navigation Jump to search

Title: Garbage Collection System for Mercury

Research Question: How can a compile-time garbage collection (CTGC) system be implemented for Mercury, a logic programming language, to improve memory usage and execution time?

Methodology: The researchers developed a CTGC system by analyzing the High-Level Data Structure (HLDS) constructed by the Melbourne Mercury Compiler (MMC). They focused on minimizing the memory usage of the program. They made several design decisions to achieve this, such as deciding how to perform reuse once it is known which cells might die, adding low-level additions to increase precision and speed, and implementing cell-caching to obtain more memory savings.

Results: The researchers presented a working and well-performing near-to-ship CTGC-system built into the MMC. They reported substantial memory savings and a noticeable reduction in execution time for a set of benchmarks, including a real-world program.

Implications: The CTGC system developed for Mercury can be seen as a useful research goal for other declarative languages that profi le themselves as general purpose programming languages for large industrial projects. It can also be a stepping stone for other languages like Ciao Prolog and HAL. The research has implications for the field of memory management systems and could potentially lead to improvements in other languages and compilers.

Link to Article: https://arxiv.org/abs/0110037v1 Authors: arXiv ID: 0110037v1