An efficient machine-independent procedure for garbage collection in various list structures

  title={An efficient machine-independent procedure for garbage collection in various list structures},
  author={Herbert Schorr and William M. Waite},
  journal={Commun. ACM},
A method for returning registers to the free list is an essential part of any list processing system. In this paper, past solutions of the recovery problem are reviewed and compared. A new algorithm is presented which offers significant advantages of speed and storage utilization. The routine for implementing this algorithm can be written in the list language with which it is to be used, thus insuring a degree of machine independence. Finally, the application of the algorithm to a number of… 

Figures from this paper

A Garbage Collection Algorithm for Tricia
A new algorithm for garbage collection of the term stack in David H. D. Warren's abstract Prolog machine (WAM), which exploits the possibilities of using a large address space, with special attention paid to virtual memory behaviour.
Garbage collection in distributed systems
Experimental results show that new algorithm recovers most inaccessible variables more quickly than a straightforward garbage collection, giving an improved memory utilisation.
Compact list representation: definition, garbage collection, and system implementation
The Swym system permits a list to be chained, compact, or any combination of the two; the system garbage collector attempts to make all lists compact; it relocates and rearranges all of list storage using temporary storage.
Reference count garbage collection
A garbage collection algorithm that permits a reference count storage reclamation scheme to collect circularly linked inaccessible structures is presented, which is considerably less efficient in space and time than conventional garbage collection systems.
Garbage collection and task deletion in distributed applicative processing systems
A real-time, effectively distributed, garbage collector of the mark-sweep variety, called the marking-tree collector, is shown to accomplish reclamation in parallel with the main computation, with no centralized data or control other than a logical rendezvous between phases of the collector.
Parallelization of Garbage Collection in a CCP System
This article presents implementation and evaluation of a parallel garbage collection scheme used in a parallel concurrent constraint programming system called Penny running on a shared memory multiprocessors machine.
A new fast and safe marking algorithm
A new marking algorithm for garbage collection is presented, which is a variation of the usual simple stacking algorithm, and in practice has quite improved both in stack space and processing time.
Multiprocessing compactifying garbage collection
Algorithms for a multiprocessing compactifying garbage collector are presented and discussed and particular attention is given to the problems of marking and relocating list cells while another processor may be operating on them.
A fast algorithm for copying list structures
An algorithm is presented for copying an arbitrarily linked list structure into a block of contiguous storage locations without destroying the original list, which is shown to be significantly faster than Fisher's algorithm, the fastest previous linear-time algorithm for the same problem.
Time required for garbage collection in retention block-structured languages
This paper investigates the time requirements for an implementation of retention block-structured languages that uses a garbage collector as its sole means for recovering inaccessible storage. The


Symmetric list processor
A list processing system in which each list cell contains both a forward and a backward link as well as a datum is described. This system is intended for imbedding in higher level languages capable
The use of threaded lists in constructing a combined ALGOL and machine-like assembly processor
As the emphasis of this paper indicates, the MADCAP project is striving to make the computer a convenient working tool of the typicM research scientist. Of primary importance to this end is, of
A method for overlapping and erasure of lists
The present paper describes a general method which enables efficient erasure of lists which employs interspersed reference counts to describe the extent of the overlapping.
An Experiment with a Self-compiling Compiler for a Simple List-processing Language
A FORTRAN-compiled list-processing language
A compiled computer language for the manipulation of symbolic expressions organized in storage as Newell-Shaw-Simon lists has been developed as a tool to make more convenient the task of programming
A note on the formation of free list
The subject of this note is the initial formation of a free list on the IBM 7090-7094, using the FORTRAN II monitor, version 2.2.
Recursive functions of symbolic expressions and their computation by machine, Part I
A programming system called LISP (for LISt Processor) has been developed for the IBM 704 computer by the Artificial Intelligence group at M.I.T. The system was designed to facilitate experiments with
Lists and why they are useful
The paper explains in a tutorial manner what goes on in the computer memory when list-processing operations are performed, and takes as an example the formal differentiation of an algebraic expression written in Polish notation.
Multiword list items
This report describes the use of two or more consecutive words as one element, which results in a considerable saving in both the space required to hold a given amount of data, and in the execution time required to perform a given process on the data.
ED.) Information Processing Language--W Manual, 2nd ed
  • 1964