The art of computer programming, volume 1 (3rd ed.): fundamental algorithms
The art of computer programming, volume 1 (3rd ed.): fundamental algorithms
An empirical study of list structure in Lisp
Communications of the ACM
An efficient, incremental, automatic garbage collector
Communications of the ACM
PASCAL user manual and report
Experience with the use of ALGOL as SIL
ALGOL Bulletin
Survey on special purpose computer architectures for AI
ACM SIGART Bulletin
Analysis of functional programs to detect run-time garbage cells
ACM Transactions on Programming Languages and Systems (TOPLAS)
Safety consideration for storage allocation optimizations
PLDI '88 Proceedings of the ACM SIGPLAN 1988 conference on Programming Language design and Implementation
LFP '90 Proceedings of the 1990 ACM conference on LISP and functional programming
Analysis of pointers and structures
PLDI '90 Proceedings of the ACM SIGPLAN 1990 conference on Programming language design and implementation
POPL '90 Proceedings of the 17th ACM SIGPLAN-SIGACT symposium on Principles of programming languages
Compile-time garbage collection by sharing analysis
FPCA '89 Proceedings of the fourth international conference on Functional programming languages and computer architecture
SISAL versus FORTRAN: a comparison using the Livermore loops
Proceedings of the 1990 ACM/IEEE conference on Supercomputing
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
Shallow binding makes functional arrays fast
ACM SIGPLAN Notices
CONS should not CONS its arguments, or, a lazy alloc is a smart alloc
ACM SIGPLAN Notices
Lively linear Lisp: “look ma, no garbage!”
ACM SIGPLAN Notices
Experiences with compiler-directed storage reclamation
FPCA '93 Proceedings of the conference on Functional programming languages and computer architecture
Live-structure dataflow analysis for Prolog
ACM Transactions on Programming Languages and Systems (TOPLAS)
The Boyer benchmark meets linear logic
ACM SIGPLAN Lisp Pointers
Garbage collection and local variable type-precision and liveness in Java virtual machines
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 Collection of Linked Data Structures
ACM Computing Surveys (CSUR)
Heap profiling for space-efficient Java
Proceedings of the ACM SIGPLAN 2001 conference on Programming language design and implementation
Flow analysis and optimization of LISP-like structures
POPL '79 Proceedings of the 6th ACM SIGACT-SIGPLAN symposium on Principles of programming languages
Decreasing Memory Overhead in Hard Real-Time Garbage Collection
EMSOFT '02 Proceedings of the Second International Conference on Embedded Software
Fast Escape Analysis and Stack Allocation for Object-Based Programs
CC '00 Proceedings of the 9th International Conference on Compiler Construction
Analysis of pointers and structures
ACM SIGPLAN Notices - Best of PLDI 1979-1999
A unified theory of garbage collection
OOPSLA '04 Proceedings of the 19th annual ACM SIGPLAN conference on Object-oriented programming, systems, languages, and applications
Compile-Time Concurrent Marking Write Barrier Removal
Proceedings of the international symposium on Code generation and optimization
Proceedings of the 1st ACM/USENIX international conference on Virtual execution environments
An on-the-fly reference-counting garbage collector for java
ACM Transactions on Programming Languages and Systems (TOPLAS)
Science of Computer Programming - Special issue: Static analysis symposium (SAS 2003)
Compiler optimizations for nondeferred reference: counting garbage collection
Proceedings of the 5th international symposium on Memory management
Correctness-preserving derivation of concurrent garbage collection algorithms
Proceedings of the 2006 ACM SIGPLAN conference on Programming language design and implementation
Free-Me: a static analysis for automatic individual object reclamation
Proceedings of the 2006 ACM SIGPLAN conference on Programming language design and implementation
Overlooking roots: a framework for making nondeferred reference-counting garbage collection fast
Proceedings of the 6th international symposium on Memory management
A principled approach to nondeferred reference-counting garbage collection
Proceedings of the fourth ACM SIGPLAN/SIGOPS international conference on Virtual execution environments
Compile-time concurrent marking write barrier removal
Compile-time concurrent marking write barrier removal
SAS'03 Proceedings of the 10th international conference on Static analysis
Efficient interpretation using quickening
Proceedings of the 6th symposium on Dynamic languages
Offline GC: trashing reachable objects on tiny devices
Proceedings of the 9th ACM Conference on Embedded Networked Sensor Systems
Derivation and evaluation of concurrent collectors
ECOOP'05 Proceedings of the 19th European conference on Object-Oriented Programming
Parallel developments in programming languages and operating systems
Computer Languages
Hi-index | 48.22 |
This paper discusses techniques which enable automatic storage reclamation overhead to be partially shifted to compile time. The paper assumes a transaction oriented collection scheme, as proposed by Deutsch and Bobrow, the necessary features of which are summarized. Implementing the described optimizations requires global flow analysis to be performed on the source program. It is shown that at compile time certain program actions that affect the reference counts of cells can be deduced. This information is used to find actions that cancel when the code is executed and those that can be grouped to achieve improved efficiency.