List processing in real time on a serial computer
- 1 April 1978
- journal article
- Published by Association for Computing Machinery (ACM) in Communications of the ACM
- Vol. 21 (4) , 280-294
- https://doi.org/10.1145/359460.359470
Abstract
A real-time list processing system is one in which the time required by the elementary list operations (e.g. CONS, CAR, CDR, RPLACA, RPLACD, EQ, and ATOM in LISP) is bounded by a (small) constant. Classical implementations of list processing systems lack this property because allocating a list cell from the heap may cause a garbage collection, which process requires time proportional to the heap size to finish. A real-time list processing system is presented which continuously reclaims garbage, including directed cycles, while linearizing and compacting the accessible cells into contiguous locations to avoid fragmenting the free storage pool. The program is small and requires no time-sharing interrupts, making it suitable for microcode. Finally, the system requires the same average time, and not more than twice the space, of a classical implementation, and those space requirements can be reduced to approximately classical proportions by compact list representation. Arrays of different sizes, a program stack, and hash linking are simple extensions to our system, and reference counting is found to be inferior for many applications.Keywords
This publication has 17 references indexed in Scilit:
- An empirical study of list structure in LispCommunications of the ACM, 1977
- An efficient, incremental, automatic garbage collectorCommunications of the ACM, 1976
- Analysis of an algorithm for real time garbage collectionCommunications of the ACM, 1976
- Multiprocessing compactifying garbage collectionCommunications of the ACM, 1975
- A note on hash linkingCommunications of the ACM, 1975
- Optimal memory management in a system with garbage collectionBIT Numerical Mathematics, 1974
- Optimal use of storage in a simple model of garbage collectionInformation Processing Letters, 1974
- Optimization of store size for garbage collectionInformation Processing Letters, 1974
- Storage administration in a virtual memory Simula systemBIT Numerical Mathematics, 1972
- A LISP garbage-collector for virtual-memory computer systemsCommunications of the ACM, 1969