Title
Simple, fast, and safe manual memory management.
Abstract
Safe programming languages are readily available, but many applications continue to be written in unsafe languages because of efficiency. As a consequence, many applications continue to have exploitable memory safety bugs. Since garbage collection is a major source of inefficiency in the implementation of safe languages, replacing it with safe manual memory management would be an important step towards solving this problem. Previous approaches to safe manual memory management use programming models based on regions, unique pointers, borrowing of references, and ownership types. We propose a much simpler programming model that does not require any of these concepts. Starting from the design of an imperative type safe language (like Java or C#), we just add a delete operator to free memory explicitly and an exception which is thrown if the program dereferences a pointer to freed memory. We propose an efficient implementation of this programming model that guarantees type safety. Experimental results from our implementation based on the C# native compiler show that this design achieves up to 3x reduction in peak working set and run time.
Year
DOI
Venue
2017
10.1145/3062341.3062376
PLDI
Keywords
Field
DocType
memory management,type safety,managed languages,garbage collection
Pointer (computer programming),Memory safety,Programming language,Programming paradigm,Computer science,Manual memory management,Real-time computing,Memory management,Garbage collection,Memory leak,Type safety
Conference
Volume
Issue
ISSN
52
6
0362-1340
Citations 
PageRank 
References 
4
0.39
26
Authors
6
Name
Order
Citations
PageRank
Piyus Kedia140.39
Manuel Costa2158988.62
Matthew Parkinson31295.89
Kapil Vaswani468530.29
Dimitrios Vytiniotis566036.89
Aaron Blankstein61085.52