Garbage collection of strings and linked data structures in real time

16Citations
Citations of this article
11Readers
Mendeley users who have this article in their library.
Get full text

Abstract

Modern high‐level languages frequently need to collect garbage not only from regions of linked structures similar to LISP's dotted pairs, but also from string regions where data is organized as an array of characters. Some characteristics of string regions that make garbage collection particularly difficult are as follows: multiple pointers to the same characters within the array are allowed and encouraged; all possible character values are legitimate as data, so it is not possible to ‘mark’ a string by overwriting with a reserved character; and a character is generally much smaller than a pointer, so it is not possible to overwrite a single character value with a forwarding pointer to a new location for a particular string. This paper describes the addition of certain information to a string descriptor and enhancements to existing copying garbage collection algorithms that permit linked data structures and strings to be allocated and garbage collected from a shared region of memory in real time. This algorithm is real‐time in the sense that the time required for allocation of each basic unit of memory is bounded by a constant. An analysis of performance is reported, and comparisons are made with traditional garbage collection. Copyright © 1988 John Wiley & Sons, Ltd

Cite

CITATION STYLE

APA

Nilsen, K. (1988). Garbage collection of strings and linked data structures in real time. Software: Practice and Experience, 18(7), 613–640. https://doi.org/10.1002/spe.4380180704

Register to see more suggestions

Mendeley helps you to discover research relevant for your work.

Already have an account?

Save time finding and organizing research with Mendeley

Sign up for free