An empirical study of list structure in Lisp
Communications of the ACM
Communications of the ACM
Structure of a LISP system using two-level storage
Communications of the ACM
A LISP garbage-collector for virtual-memory computer systems
Communications of the ACM
A LISP Garbage Collector Algorithm Using Serial Secondary Storage
A LISP Garbage Collector Algorithm Using Serial Secondary Storage
A structural view of the Cedar programming environment
ACM Transactions on Programming Languages and Systems (TOPLAS)
Survey on special purpose computer architectures for AI
ACM SIGART Bulletin
Virtual memory on a narrow machine for an object-oriented language
OOPLSA '86 Conference proceedings on Object-oriented programming systems, languages and applications
A third generation Smalltalk-80 implementation
OOPLSA '86 Conference proceedings on Object-oriented programming systems, languages and applications
The design and implementation of Concurrent Smalltalk
OOPLSA '86 Conference proceedings on Object-oriented programming systems, languages and applications
Incremental incrementally compacting garbage collection
SIGPLAN '87 Papers of the Symposium on Interpreters and interpretive techniques
Storage reclamation in object oriented database systems
SIGMOD '87 Proceedings of the 1987 ACM SIGMOD international conference on Management of data
Analysis of functional programs to detect run-time garbage cells
ACM Transactions on Programming Languages and Systems (TOPLAS)
Tenuring policies for generation-based storage reclamation
OOPSLA '88 Conference proceedings on Object-oriented programming systems, languages and applications
Generational reference counting: a reduced-communication distributed storage reclamation scheme
PLDI '89 Proceedings of the ACM SIGPLAN 1989 Conference on Programming language design and implementation
Analysis of pointers and structures
PLDI '90 Proceedings of the ACM SIGPLAN 1990 conference on Programming language design and implementation
Reference escape analysis: optimizing reference counting based on the lifetime of references
PEPM '91 Proceedings of the 1991 ACM SIGPLAN symposium on Partial evaluation and semantics-based program manipulation
An adaptive tenuring policy for generation scavengers
ACM Transactions on Programming Languages and Systems (TOPLAS)
ACM SIGARCH Computer Architecture News
Reducing the latency of a real-time garbage collector
ACM Letters on Programming Languages and Systems (LOPLAS)
POPL '92 Proceedings of the 19th ACM SIGPLAN-SIGACT symposium on Principles of programming languages
HOPL-II The second ACM SIGPLAN conference on History of programming languages
A bibliography on garbage collection and related topics
ACM SIGPLAN Notices
Static and dynamic partitioning of pointers as links and threads
Proceedings of the first ACM SIGPLAN international conference on Functional programming
Research Demonstration of a Hardware Reference-Counting Heap
Lisp and Symbolic Computation
Ephemerons: a new finalization mechanism
Proceedings of the 12th ACM SIGPLAN conference on Object-oriented programming, systems, languages, and applications
Memory management with explicit regions
PLDI '98 Proceedings of the ACM SIGPLAN 1998 conference on Programming language design and implementation
One-bit counts between unique and sticky
Proceedings of the 1st international symposium on Memory management
Garbage collecting the Internet: a survey of distributed garbage collection
ACM Computing Surveys (CSUR)
Scheduling garbage collector for embedded real-time systems
Proceedings of the ACM SIGPLAN 1999 workshop on Languages, compilers, and tools for embedded systems
Parallel garbage collection without synchronization overhead
ISCA '85 Proceedings of the 12th annual international symposium on Computer architecture
An efficient LISP-execution architecture with a new representation for list structures
ISCA '85 Proceedings of the 12th annual international symposium on Computer architecture
Memory organization and management for linked data structures
CSC '91 Proceedings of the 19th annual conference on Computer Science
Garbage Collection of Linked Data Structures
ACM Computing Surveys (CSUR)
Morris's Garbage Compaction Algorithm Restores Reference Counts
ACM Transactions on Programming Languages and Systems (TOPLAS)
Compact Encodings of List Structure
ACM Transactions on Programming Languages and Systems (TOPLAS)
A real-time garbage collector based on the lifetimes of objects
Communications of the ACM
Analysis of pointer “rotation”
Communications of the ACM
Design of a LISP-based microprocessor
Communications of the ACM
List processing in real time on a serial computer
Communications of the ACM
Shifting garbage collection overhead to compile time
Communications of the ACM
An efficient list-moving algorithm using constant workspace
Communications of the ACM
Java without the coffee breaks: a nonintrusive multiprocessor garbage collector
Proceedings of the ACM SIGPLAN 2001 conference on Programming language design and implementation
Exploiting prolific types for memory management and optimizations
POPL '02 Proceedings of the 29th ACM SIGPLAN-SIGACT symposium on Principles of programming languages
Sorting sequential files with limited auxiliary storage
ACM-SE 18 Proceedings of the 18th annual Southeast regional conference
An on-the-fly reference counting garbage collector for Java
OOPSLA '01 Proceedings of the 16th ACM SIGPLAN conference on Object-oriented programming, systems, languages, and applications
In or out?: putting write barriers in their place
Proceedings of the 3rd international symposium on Memory management
The Smalltalk-76 programming system design and implementation
POPL '78 Proceedings of the 5th ACM SIGACT-SIGPLAN symposium on Principles of programming languages
POPL '80 Proceedings of the 7th ACM SIGPLAN-SIGACT symposium on Principles of programming languages
Making the world safe for garbage collection
POPL '81 Proceedings of the 8th ACM SIGPLAN-SIGACT symposium on Principles of programming languages
An experimental study of renewal-older-first garbage collection
Proceedings of the seventh ACM SIGPLAN international conference on Functional programming
Concurrent Cycle Collection in Reference Counted Systems
ECOOP '01 Proceedings of the 15th European Conference on Object-Oriented Programming
Decreasing Memory Overhead in Hard Real-Time Garbage Collection
EMSOFT '02 Proceedings of the Second International Conference on Embedded Software
Creating efficient systems for object-oriented languages
POPL '84 Proceedings of the 11th ACM SIGACT-SIGPLAN symposium on Principles of programming languages
Efficient implementation of the smalltalk-80 system
POPL '84 Proceedings of the 11th ACM SIGACT-SIGPLAN symposium on Principles of programming languages
ISCA '83 Proceedings of the 10th annual international symposium on Computer architecture
Direct execution of lisp on a list_directed architecture
ASPLOS I Proceedings of the first international symposium on Architectural support for programming languages and operating systems
Garbage collection in a large LISP system
LFP '84 Proceedings of the 1984 ACM Symposium on LISP and functional programming
ByteLisp and its Alto implementation
LFP '80 Proceedings of the 1980 ACM conference on LISP and functional programming
Overview and status of DoradoLisp
LFP '80 Proceedings of the 1980 ACM conference on LISP and functional programming
Experience with a microprogrammed Interlisp system
MICRO 11 Proceedings of the 11th annual workshop on Microprogramming
Hints for computer system design
SOSP '83 Proceedings of the ninth ACM symposium on Operating systems principles
SLIPE '85 Proceedings of the ACM SIGPLAN 85 symposium on Language issues in programming environments
Generation Scavenging: A non-disruptive high performance storage reclamation algorithm
SDE 1 Proceedings of the first ACM SIGSOFT/SIGPLAN software engineering symposium on Practical software development environments
Ulterior reference counting: fast garbage collection without a long wait
OOPSLA '03 Proceedings of the 18th annual ACM SIGPLAN conference on Object-oriented programing, systems, languages, and applications
The space cost of lazy reference counting
Proceedings of the 31st ACM SIGPLAN-SIGACT symposium on Principles of programming languages
Analysis of pointers and structures
ACM SIGPLAN Notices - Best of PLDI 1979-1999
Oil and Water? High Performance Garbage Collection in Java with MMTk
Proceedings of the 26th International Conference on Software Engineering
Myths and realities: the performance impact of garbage collection
Proceedings of the joint international conference on Measurement and modeling of computer systems
A unified theory of garbage collection
OOPSLA '04 Proceedings of the 19th annual ACM SIGPLAN conference on Object-oriented programming, systems, languages, and applications
History of programming languages---II
Proceedings of the 1st ACM/USENIX international conference on Virtual execution environments
An energy efficient garbage collector for java embedded devices
LCTES '05 Proceedings of the 2005 ACM SIGPLAN/SIGBED conference on Languages, compilers, and tools for embedded systems
Yama: A Scalable Generational Garbage Collector for Java in Multiprocessor Systems
IEEE Transactions on Parallel and Distributed Systems
An on-the-fly reference-counting garbage collector for java
ACM Transactions on Programming Languages and Systems (TOPLAS)
Generating object lifetime traces with Merlin
ACM Transactions on Programming Languages and Systems (TOPLAS)
Compiler optimizations for nondeferred reference: counting garbage collection
Proceedings of the 5th international symposium on Memory management
Safe manual memory management in cyclone
Science of Computer Programming - Special issue on five perspectives on modern memory management: Systems, hardware and theory
An efficient on-the-fly cycle collection
ACM Transactions on Programming Languages and Systems (TOPLAS)
Proceedings of the 6th international symposium on Memory management
Overlooking roots: a framework for making nondeferred reference-counting garbage collection fast
Proceedings of the 6th international symposium on Memory management
Overview of garbage collection in symbolic computing
ACM SIGPLAN Lisp Pointers
A principled approach to nondeferred reference-counting garbage collection
Proceedings of the fourth ACM SIGPLAN/SIGOPS international conference on Virtual execution environments
Decoupled root scanning in multi-processor systems
CASES '08 Proceedings of the 2008 international conference on Compilers, architectures and synthesis for embedded systems
A lock-free, concurrent, and incremental stack scanning for garbage collectors
Proceedings of the 2009 ACM SIGPLAN/SIGOPS international conference on Virtual execution environments
Online reorganization of databases
ACM Computing Surveys (CSUR)
Flexible reference-counting-based hardware acceleration for garbage collection
Proceedings of the 36th annual international symposium on Computer architecture
The single-referent collector: Optimizing compaction for the common case
ACM Transactions on Architecture and Code Optimization (TACO)
A lock-free, concurrent, and incremental stack scanning mechanism for garbage collectors
ACM SIGOPS Operating Systems Review
Reduction of storage fragmentation on direct access devices
IBM Journal of Research and Development
Using prefetching to improve reference-counting garbage collectors
CC'07 Proceedings of the 16th international conference on Compiler construction
Integrating generations with advanced reference counting garbage collectors
CC'03 Proceedings of the 12th international conference on Compiler construction
Efficient interpretation using quickening
Proceedings of the 6th symposium on Dynamic languages
An efficient approach to cyclic reference counting based on a coarse-grained search
Information Processing Letters
Automatic fine-grain locking using shape properties
Proceedings of the 2011 ACM international conference on Object oriented programming systems languages and applications
Hardware concurrent garbage collection for short-lived objects in mobile java devices
EUC'05 Proceedings of the 2005 international conference on Embedded and Ubiquitous Computing
A lightweight cyclic reference counting algorithm
GPC'06 Proceedings of the First international conference on Advances in Grid and Pervasive Computing
Down for the count? Getting reference counting back in the ring
Proceedings of the 2012 international symposium on Memory Management
Resurrector: a tunable object lifetime profiling technique for optimizing real-world programs
Proceedings of the 2013 ACM SIGPLAN international conference on Object oriented programming systems languages & applications
Taking off the gloves with reference counting Immix
Proceedings of the 2013 ACM SIGPLAN international conference on Object oriented programming systems languages & applications
Non-blocking garbage collection for real-time Android
Proceedings of the 11th International Workshop on Java Technologies for Real-time and Embedded Systems
LogGC: garbage collecting audit log
Proceedings of the 2013 ACM SIGSAC conference on Computer & communications security
Hi-index | 48.31 |
This paper describes a new way of solving the storage reclamation problem for a system such as Lisp that allocates storage automatically from a heap, and does not require the programmer to give any indication that particular items are no longer useful or accessible. A reference count scheme for reclaiming non-self-referential structures, and a linearizing, compacting, copying scheme to reorganize all storage at the users discretion are proposed. The algorithms are designed to work well in systems which use multiple levels of storage, and large virtual address space. They depend on the fact that most cells are referenced exactly once, and that reference counts need only be accurate when storage is about to be reclaimed. A transaction file stores changes to reference counts, and a multiple reference table stores the count for items which are referenced more than once.