petdance/scratch — Issue #311: Investigate SAFECode
Author: petdance
Created: 2011-11-01 04:25:39+00:00
State: open

http://safecode.cs.illinois.edu/

The purpose of the SAFECode project is to enable program safety without garbage collection and with minimal run-time checks using static analysis when possible and run-time checks when necessary. SAFECode defines a code representation with minimal semantic restrictions designed to enable static enforcement of safety, using aggressive compiler techniques developed in this project.

SAFECode is designed to provide the following safety guarantees:

* Array bounds checking (prevents pointers from overflowing from one memory object into another)
* Loads and stores only access valid memory objects
* Type safety for a subset of memory objects proven to be type-safe
* Sound operational semantics in the face of dangling pointer errors (i.e., all safety guarantees hold even when dangling pointers are dereferenced).
* Optional dangling pointer detection (induces more overhead)