Communications of the ACM · 1978 · 592 citations · 16 references
ComputingComputer ScienceComputer SystemsComputer ArchitectureData StructuresReal-time SystemsGarbage CollectionMemory HierarchyMemory Hierarchy DesignMemory ManagementReal-time Systems ArchitectureReal-time Systems DesignGarbage Collection OverheadGarbage Collection Overhead AnalysisHeap ManagementHeap OrganizationReal-time Garbage CollectionReal-time ProcessingReference Counting
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.
16
Logical Reversibility of Computation
C. H. Bennett · IBM Journal of Research and Development · 1973 · 3.7K citations
SIMULA: an ALGOL-based simulation language
Ole-Johan Dahl, Kristen Nygaard · Communications of the ACM · 1966 · 863 citations · Full text
A nonrecursive list compacting algorithm
C. J. Cheney · Communications of the ACM · 1970 · 392 citations · Full text
A method for overlapping and erasure of lists
George E. Collins · Communications of the ACM · 1960 · 314 citations · Full text