petdance/scratch — Issue #1030: Investigate SAFECode
Author: petdance
Created: 2011-11-14 06:14:25+00:00
State: open
Labels: cage, Pri-normal, Sev-medium

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)

Originally http://trac.parrot.org/parrot/ticket/1698 by @petdance