Share on Facebook Share on Twitter Email
Answers.com

Memory safety

 
Wikipedia: Memory safety

Memory safety is a concern in software development that aims to avoid software bugs that cause security vulnerabilities dealing with RAM memory access, such as buffer overflows and dangling pointers.

Languages such as C++ that support arbitrary pointer arithmetic, casting, and deallocation are typically not memory safe. Most high-level programming languages solve this problem by disallowing pointer arithmetic and casting entirely, and by enforcing tracing garbage collection as the sole memory management scheme.

Some modern low-level languages take different approaches. For example, Cyclone uses constructs such as "fat pointers" [1] and "regions" [2] to give programmers some low-level control while still ensuring memory safety.

A language could support even more uses of pointer arithmetic, casting, and deallocation without sacrificing memory safety by using automated theorem proving as a form of static code analysis. ESC/Java and D demonstrate two ways that programmers can declare their invariants in ways that can be understood by a theorem prover.


Search unanswered questions...
Enter a question here...
Search: All sources Community Q&A Reference topics
 
 

 

Copyrights:

Wikipedia. This article is licensed under the Creative Commons Attribution/Share-Alike License. It uses material from the Wikipedia article "Memory safety" Read more