How to make ad-hoc polymorphism less ad hoc
POPL '89 Proceedings of the 16th ACM SIGPLAN-SIGACT symposium on Principles of programming languages
The treadmill: real-time garbage collection without motion sickness
ACM SIGPLAN Notices
Lively linear Lisp: “look ma, no garbage!”
ACM SIGPLAN Notices
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
Implementation of the typed call-by-value λ-calculus using a stack of regions
POPL '94 Proceedings of the 21st ACM SIGPLAN-SIGACT symposium on Principles of programming languages
The Boyer benchmark meets linear logic
ACM SIGPLAN Lisp Pointers
Compiling polymorphism using intensional type analysis
POPL '95 Proceedings of the 22nd ACM SIGPLAN-SIGACT symposium on Principles of programming languages
Java intermediate bytecodes: ACM SIGPLAN workshop on intermediate representations (IR'95)
IR '95 Papers from the 1995 ACM SIGPLAN workshop on Intermediate representations
Better static memory management: improving region-based analysis of higher-order languages
PLDI '95 Proceedings of the ACM SIGPLAN 1995 conference on Programming language design and implementation
Abstract models of memory management
FPCA '95 Proceedings of the seventh international conference on Functional programming languages and computer architecture
Simple garbage-collector-safety
PLDI '96 Proceedings of the ACM SIGPLAN 1996 conference on Programming language design and implementation
POPL '96 Proceedings of the 23rd ACM SIGPLAN-SIGACT symposium on Principles of programming languages
Proceedings of the 24th ACM SIGPLAN-SIGACT symposium on Principles of programming languages
From system F to typed assembly language
POPL '98 Proceedings of the 25th ACM SIGPLAN-SIGACT symposium on Principles of programming languages
Memory management with explicit regions
PLDI '98 Proceedings of the ACM SIGPLAN 1998 conference on Programming language design and implementation
ICFP '98 Proceedings of the third ACM SIGPLAN international conference on Functional programming
Intensional polymorphism in type-erasure semantics
ICFP '98 Proceedings of the third ACM SIGPLAN international conference on Functional programming
Typed memory management in a calculus of capabilities
Proceedings of the 26th ACM SIGPLAN-SIGACT symposium on Principles of programming languages
Efficient and safe-for-space closure conversion
ACM Transactions on Programming Languages and Systems (TOPLAS)
An efficient machine-independent procedure for garbage collection in various list structures
Communications of the ACM
Region Analysis and the Polymorphic Lambda Calculus
LICS '99 Proceedings of the 14th Annual IEEE Symposium on Logic in Computer Science
Alias Types for Recursive Data Structures (Extended Version)
Alias Types for Recursive Data Structures (Extended Version)
From ML to Ada: Strongly-typed language interoperability via source translation
Journal of Functional Programming
Proceedings of the ACM SIGPLAN 2001 conference on Programming language design and implementation
On regions and linear types (extended abstract)
Proceedings of the sixth ACM SIGPLAN international conference on Functional programming
Combining region inference and garbage collection
PLDI '02 Proceedings of the ACM SIGPLAN 2002 Conference on Programming language design and implementation
Region-based memory management in cyclone
PLDI '02 Proceedings of the ACM SIGPLAN 2002 Conference on Programming language design and implementation
A typed interface for garbage collection
Proceedings of the 2003 ACM SIGPLAN international workshop on Types in languages design and implementation
Design and Correctness of Program Transformations Based on Control-Flow Analysis
TACS '01 Proceedings of the 4th International Symposium on Theoretical Aspects of Computer Software
Proceedings of the 3rd ACM SIGPLAN international conference on Principles and practice of declarative programming
Checking and inferring local non-aliasing
PLDI '03 Proceedings of the ACM SIGPLAN 2003 conference on Programming language design and implementation
Local reasoning about a copying garbage collector
Proceedings of the 31st ACM SIGPLAN-SIGACT symposium on Principles of programming languages
A Retrospective on Region-Based Memory Management
Higher-Order and Symbolic Computation
Experience with safe manual memory-management in cyclone
Proceedings of the 4th 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
Deconstructing process isolation
Proceedings of the 2006 workshop on Memory system performance and correctness
A garbage-collecting typed assembly language
TLDI '07 Proceedings of the 2007 ACM SIGPLAN international workshop on Types in languages design and implementation
A general framework for certifying garbage collectors and their mutators
Proceedings of the 2007 ACM SIGPLAN conference on Programming language design and implementation
Garbage collector verification for proof-carrying code
Journal of Computer Science and Technology
Local reasoning about a copying garbage collector
ACM Transactions on Programming Languages and Systems (TOPLAS)
Automated verification of practical garbage collectors
Proceedings of the 36th annual ACM SIGPLAN-SIGACT symposium on Principles of programming languages
Linear regions are all you need
ESOP'06 Proceedings of the 15th European conference on Programming Languages and Systems
Hi-index | 0.00 |
By combining existing type systems with standard type-based compilation techniques, we describe how to write strongly typed programs that include a function that acts as a t racing garbage collector for the program. Since the garbage collector is an explicit function, we do not need to provide a t rusted garbage collector as a runtime service to manage memory.Since our language is strongly typed, the standard type soundness guarantee "Well typed programs do not go wrong" is extended to include the collector. Our type safety guarantee is non-trivial since not only does it guarantee the type safety of the garbage collector, but it guarantees that the collector preservers the type safety of the program being garbage collected. We describe the technique in detail and report performance measurements for a few microbench-marks as well as sketch the proofs of type soundness for our system.