Garbage collection in an uncooperative environment
Software—Practice & Experience
Experiences creating a portable cedar
PLDI '89 Proceedings of the ACM SIGPLAN 1989 Conference on Programming language design and implementation
Mostly parallel garbage collection
PLDI '91 Proceedings of the ACM SIGPLAN 1991 conference on Programming language design and implementation
Tag-free garbage collection for strongly typed programming languages
PLDI '91 Proceedings of the ACM SIGPLAN 1991 conference on Programming language design and implementation
Integrating the Scheme and C languages
LFP '92 Proceedings of the 1992 ACM conference on LISP and functional programming
Compiler support for garbage collection in a statically typed language
PLDI '92 Proceedings of the ACM SIGPLAN 1992 conference on Programming language design and implementation
A mark-and-sweep collector C++
POPL '92 Proceedings of the 19th ACM SIGPLAN-SIGACT symposium on Principles of programming languages
Space efficient conservative garbage collection
PLDI '93 Proceedings of the ACM SIGPLAN 1993 conference on Programming language design and implementation
Efficient detection of all pointer and array access errors
PLDI '94 Proceedings of the ACM SIGPLAN 1994 conference on Programming language design and implementation
LFP '94 Proceedings of the 1994 ACM conference on LISP and functional programming
Concurrent replicating garbage collection
LFP '94 Proceedings of the 1994 ACM conference on LISP and functional programming
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
Type-preserving garbage collectors
POPL '01 Proceedings of the 28th ACM SIGPLAN-SIGACT symposium on Principles of programming languages
Accurate garbage collection in an uncooperative environment
Proceedings of the 3rd international symposium on Memory management
Toward a foundational typed assembly language
POPL '03 Proceedings of the 30th ACM SIGPLAN-SIGACT symposium on Principles of programming languages
Bee: an integrated development environment for the Scheme programming language
Journal of Functional Programming
Using model checking to find serious file system errors
ACM Transactions on Computer Systems (TOCS)
Using model checking to find serious file system errors
OSDI'04 Proceedings of the 6th conference on Symposium on Opearting Systems Design & Implementation - Volume 6
Garbage collection in the next C++ standard
Proceedings of the 2009 international symposium on Memory management
Speculative separation for privatization and reductions
Proceedings of the 33rd ACM SIGPLAN conference on Programming Language Design and Implementation
The challenge of cross-language interoperability
Communications of the ACM
The Challenge of Cross-language Interoperability
Queue - Development
Hi-index | 0.02 |
A conservative garbage collector can typically be used with conventionally compiled programs written in C or C++. But two safety issues must be considered. First, the source code must not hide pointers from the garbage collector. This primarily requires stricter adherence to existing restrictions in the language definition. Second, we must ensure that the compiler will not perform transformations that invalidate this requirement.We argue that the same technique can be used to address both issues. We present an algorithm for annotating source or intermediate code to either check the validity of pointer arithmetic in the source, or to guarantee that under minimal, clearly defined assumptions about the compiler, the optimizer cannot "disguise" pointers. We discuss an implementation based on a preprocessor for the GNU C compiler (gcc), and give some measurements of program slow down.