Garbage collection in an uncooperative environment
Software—Practice & Experience
ACM Transactions on Programming Languages and Systems (TOPLAS)
Copying and Swapping: Influences on the Design of Reusable Software Components
IEEE Transactions on Software Engineering
Lively linear Lisp: “look ma, no garbage!”
ACM SIGPLAN Notices
The measured cost of conservative garbage collection
Software—Practice & Experience
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
Region-based memory management
Information and Computation
Type-preserving garbage collectors
POPL '01 Proceedings of the 28th ACM SIGPLAN-SIGACT symposium on Principles of programming languages
Typed memory management via static capabilities
ACM Transactions on Programming Languages and Systems (TOPLAS)
Alias burying: unique variables without destructive reads
Software—Practice & Experience - Special issue on aliasing in object-oriented systems
Enforcing high-level protocols in low-level software
Proceedings of the ACM SIGPLAN 2001 conference on Programming language design and implementation
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
Adoption and focus: practical linear types for imperative programming
PLDI '02 Proceedings of the ACM SIGPLAN 2002 Conference on Programming language design and implementation
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
ATEC '02 Proceedings of the General Track of the annual conference on USENIX Annual Technical Conference
Alias Types for Recursive Data Structures
TIC '00 Selected papers from the Third International Workshop on Types in Compilation
A Toolkit for User-Level File Systems
Proceedings of the General Track: 2002 USENIX Annual Technical Conference
A direct approach to control-flow sensitive region-based memory management
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
Ownership types for safe region-based memory management in real-time Java
PLDI '03 Proceedings of the ACM SIGPLAN 2003 conference on Programming language design and implementation
Adding operating system structure to language-based protection
Adding operating system structure to language-based protection
A step-indexed model of substructural state
Proceedings of the tenth ACM SIGPLAN international conference on Functional programming
Quantifying the performance of garbage collection vs. explicit memory management
OOPSLA '05 Proceedings of the 20th annual ACM SIGPLAN conference on Object-oriented programming, systems, languages, and applications
Quantified types in an imperative language
ACM Transactions on Programming Languages and Systems (TOPLAS)
SAFECode: enforcing alias analysis for weakly typed languages
Proceedings of the 2006 ACM SIGPLAN conference on Programming language design and implementation
DieHard: probabilistic memory safety for unsafe languages
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
Backwards-compatible array bounds checking for C with very low overhead
Proceedings of the 28th international conference on Software engineering
Safe manual memory management in cyclone
Science of Computer Programming - Special issue on five perspectives on modern memory management: Systems, hardware and theory
A type system to assure scope safety within safety-critical Java modules
JTRES '06 Proceedings of the 4th international workshop on Java technologies for real-time and embedded systems
Practical software reuse for IBM System z I/O subsystems
IBM Journal of Research and Development
Uniqueness inference for compile-time object deallocation
Proceedings of the 6th international symposium on Memory management
Hardbound: architectural support for spatial safety of the C programming language
Proceedings of the 13th international conference on Architectural support for programming languages and operating systems
L3: A Linear Language with Locations
Fundamenta Informaticae - Typed Lambda Calculi and Applications 2005, Selected Papers
Science of Computer Programming
Lightweight linear types in system f°
Proceedings of the 5th ACM SIGPLAN workshop on Types in language design and implementation
Lolliproc: to concurrency from classical linear logic via curry-howard and control
Proceedings of the 15th ACM SIGPLAN international conference on Functional programming
Capabilities for uniqueness and borrowing
ECOOP'10 Proceedings of the 24th European conference on Object-oriented programming
Typed assembly language for implementing OS kernels in SMP/multi-core environments with interrupts
SSV'10 Proceedings of the 5th international conference on Systems software verification
A type system for borrowing permissions
POPL '12 Proceedings of the 39th annual ACM SIGPLAN-SIGACT symposium on Principles of programming languages
L3: a linear language with locations
TLCA'05 Proceedings of the 7th international conference on Typed Lambda Calculi and Applications
Linear regions are all you need
ESOP'06 Proceedings of the 15th European conference on Programming Languages and Systems
Runtime countermeasures for code injection attacks against C and C++ programs
ACM Computing Surveys (CSUR)
L$^3$: A Linear Language with Locations
Fundamenta Informaticae - Typed Lambda Calculi and Applications 2005, Selected Papers
A bloat-aware design for big data applications
Proceedings of the 2013 international symposium on memory management
Alias control for deterministic parallelism
Aliasing in Object-Oriented Programming
Hi-index | 0.00 |
The goal of the Cyclone project is to investigate type safety for low-level languages such as C. Our most difficult challenge has been providing programmers control over memory management while retaining type safety. This paper reports on our experience trying to integrate and effectively use two previously proposed, type-safe memory management mechanisms: statically-scoped regions and unique pointers. We found that these typing mechanisms can be combined to build alternative memory-management abstractions, such as reference counted objects and arenas with dynamic lifetimes, and thus provide a flexible basis. Our experience---porting C programs and building new applications for resource-constrained systems---confirms that experts can use these features to improve memory footprint and sometimes to improve throughput when used instead of, or in combination with, conservative garbage collection.