C remains a very widely used systems programming language; it is widely known, supported by many tools, gives good access to low-level hardware... But producing safe and reliable C programs is unnecessarily hard, a particularly significant problem for concurrent programs, and in particular systems code. Modern languages address many of these safety and reliability issues, but porting large systems to a new language is often impractical. Static analyses of C find some problems, but typically do not guarantee safety.
Ivy represents an alternate approach: Ivy is a safe, concurrent language, fully interoperable with C. The current 1.0 version provides type, memory and concurrency (sound access to shared data) safety. Note that this release does not include the new groups feature for handling sharing-mode-changes on data structures. We expect to release Ivy with groups soon.
To make using Ivy practical, we have kept our changes to C small: so far, they consist only of extra type annotations and small API changes. This makes it possible to compile Ivy programs with a traditional C compiler with the help of a small #include file, albeit without any of the safety benefits.
|Page last modified on June 16, 2009, at 06:46 AM|