Cyclone: A Safe Dialect of C
Cyclone achieves safety while remaining compatible with C by:
- Enforcing type safety (e.g., a cast from t1 to t2 is allowed only if it is safe to view a t1 as a t2)
- Not changing data representation or calling conventions
- Providing region-based, manual memory management
- Using a combination of type information and run-time checks to prevent array-bound violations
- Wrapping the C standard library with appropriate run-time checks as necessary (e.g., has a FILE already been closed)
The link for this article located at AT&T Labs Research is no longer available.