1998Unpublished venueRequires access

A Compacting Garbage Collector for Unidirectional Heaps

Kent Boortz, Dan Sahlin

Open publisher page 0 citations

Abstract

. A unidirectional heap is a heap where all pointers go in one direction, e.g. from newer to older objects. For a strict functional language, such as Erlang, the heap may be arranged so that it is unidirectional. We here present a compacting garbage collection algorithm which utilizes the fact that a heap is unidirectional. Only one memory space is used in our algorithm. In fact, no extra memory is used at all, not even any reserved bits within the cells. The algorithm is quite easy to extend to a variant of generational garbage collection. 1 Introduction The Erlang functional programming language [5] is typically implemented using a copying garbage collection algorithm. In [4] a completely new method was suggested utilizing the fact that objects on the heap may be allocated so that each object only points to earlier allocated ones. In order to be able to deallocate data in the middle of the heap, without disturbing the order of objects, all objects were linked, each with a `...

About this research paper

What this paper is about

. A unidirectional heap is a heap where all pointers go in one direction, e.g. from newer to older objects. For a strict functional language, such as Erlang, the heap may be arranged so that it is unidirectional. We here present a compacting garbage collection algorithm which utilizes the fact that a heap is unidirectional. Only one memory space is used in our algorithm. In fact, no extra memory is used at all, not even any reserved bits within the cells. The algorithm is quite easy to extend to a variant of generational garbage collection. 1 Introduction The Erlang functional programming language [5] is typically implemented using a copying garbage collection algorithm. In [4] a completely new method was suggested utilizing the fact that objects on the heap may be allocated so that each object only points to earlier allocated ones. In order to be able to deallocate data in the middle of the heap, without disturbing the order of objects, all objects were linked, each with a `...

Why it matters

A significance statement is not available in the OpenAlex record.

Key contribution

A contribution statement is not available in the OpenAlex record.

Method / approach

Method details are not available in the OpenAlex metadata.

Main findings

Findings are not separately available in the OpenAlex metadata.

Limitations

Limitations are not available in the OpenAlex metadata.

Applications

Application details are not available in the OpenAlex metadata.

Available abstract

. A unidirectional heap is a heap where all pointers go in one direction, e.g. from newer to older objects. For a strict functional language, such as Erlang, the heap may be arranged so that it is unidirectional. We here present a compacting garbage collection algorithm which utilizes the fact that a heap is unidirectional. Only one memory space is used in our algorithm. In fact, no extra memory is used at all, not even any reserved bits within the cells. The algorithm is quite easy to extend to a variant of generational garbage collection. 1 Introduction The Erlang functional programming language [5] is typically implemented using a copying garbage collection algorithm. In [4] a completely new method was suggested utilizing the fact that objects on the heap may be allocated so that each object only points to earlier allocated ones. In order to be able to deallocate data in the middle of the heap, without disturbing the order of objects, all objects were linked, each with a `...

Key concepts: Heap (data structure), Garbage collection, Computer science, Manual memory management, Garbage, Parallel computing, Erlang (programming language), Algorithm

Related papers

Back to paper searchBrowse research topicsOriginal source
A Compacting Garbage Collector for Unidirectional Heaps — Research Paper | ScholarLens