Region-based memory management
Information and Computation
Typed memory management via static capabilities
ACM Transactions on Programming Languages and Systems (TOPLAS)
Types and programming languages
Types and programming languages
Resource-Passing Concurrent Programming
TACS '01 Proceedings of the 4th International Symposium on Theoretical Aspects of Computer Software
A practical flow-sensitive and context-sensitive C and C++ memory leak detector
PLDI '03 Proceedings of the ACM SIGPLAN 2003 conference on Programming language design and implementation
Permission accounting in separation logic
Proceedings of the 32nd ACM SIGPLAN-SIGACT symposium on Principles of programming languages
Types for safe locking: Static race detection for Java
ACM Transactions on Programming Languages and Systems (TOPLAS)
Safe manual memory management in cyclone
Science of Computer Programming - Special issue on five perspectives on modern memory management: Systems, hardware and theory
Resources, concurrency, and local reasoning
Theoretical Computer Science
Checking race freedom via linear programming
Proceedings of the 2008 ACM SIGPLAN conference on Programming language design and implementation
APLAS '08 Proceedings of the 6th Asian Symposium on Programming Languages and Systems
Fractional Ownerships for Safe Memory Deallocation
APLAS '09 Proceedings of the 7th Asian Symposium on Programming Languages and Systems
Bi-abductive Resource Invariant Synthesis
APLAS '09 Proceedings of the 7th Asian Symposium on Programming Languages and Systems
Checking interference with fractional permissions
SAS'03 Proceedings of the 10th international conference on Static analysis
TACAS'08/ETAPS'08 Proceedings of the Theory and practice of software, 14th international conference on Tools and algorithms for the construction and analysis of systems
Hi-index | 0.00 |
We propose a type system to guarantee safe resource deallocation for shared-memory concurrent programs by extending the previous type system based on fractional ownerships. Here, safe resource deallocation means that memory cells, locks, or threads are not left allocated when a program terminates. Our framework supports (1) fork/join parallelism, (2) synchronization with locks, and (3) dynamically allocated memory cells and locks. The type system is proved to be sound. We also provide a type inference algorithm for the type system and a prototype implementation of the algorithm.