7
20
2011
18

Cyclone——安全的C语言

还在对 C 语言糟糕的内存管理咬牙切齿吗(垃圾收集器)?还在对各种乱七八糟的 NULL 指针调试得天昏地暗吗?还在对 C 语言蹩脚的异常处理内牛满面吗?

何不试试 Cyclone

先用一个打开 passwd 文件的例子给大家看看,这是 C 语言版:

FILE *f = fopen ("/etc/passwd", "r");
if (f == NULL)
{
    /* 一堆错误处理 */
}

int c;
c = getc (f);
/* 又一堆错误处理 */

尤其是这样多了的麻烦劲,搞得我有时候想用 setjmp 来处理错误。

好了,看看 Cyclone:

FILE *f = fopen ("/etc/passwd", "r");
int c;
try
{
  c = getc ((FILE *@notnull)f);
}
catch
{
  case &Null_Exception:
    printf ("Couldn't open /etc/passwd.\n");
    exit (1);
  case &Invalid_arguments:
    printf ("Invalid arugment (%s)", s);
    exit (1);
}

是不是很直观?其中还有一种叫做let的操作符,语法是 let 变量 = N; 也就是说,你不必去管变量类型了,在临时变量的时候,能稍微起一点作用(虽然有点鸡肋)。

其中一句简介,真是深得我心:“认真的C程序员可以写出来安全的程序,不过在实践中,相当多的C程序都不咋地安全。”还有,Cyclone程序会在编译时、链接时、运行时不断检查来确保安全。

还等什么呢?快去试试吧!

PS:目前最好的教程是User's Guide了。要用GCC4编译得用SVN里面的最新版。

PS2:我也只是新发现,从User's Guide里面摘抄了一些内容。注意这个东西不一定与C兼容。

Category: | Tags: cyclone c 安全c

Powered by Chito | Hosted at is-Programmer | Theme: Aeros 2.0 by TheBuckmaker.com