Robert O'Callahan's recent post about ownership types, stack allocation and abstraction penalties has a comment pointing to the Cyclone programming language.
This is an interesting looking language in that it has many of the properties of C which make it popular for system level development:
Cyclone is like C: it has pointers and pointer arithmetic, structs, arrays, goto, manual memory management, and C's preprocessor and syntax.
But it also includes higher level constructs and safer memory management:
Cyclone adds features such as pattern matching, algebraic datatypes, exceptions, region-based memory management, and optional garbage collection
The developers are promoting it as a safer dialect of C:
Cyclone is safe: pure Cyclone programs are not vulnerable to a wide class of bugs that plague C programs: buffer overflows, format string attacks, double free bugs, dangling pointer accesses, etc.
The user manual has a good description of the various features.