Rust:一个不再有 C/C+的,实现安全实时软件的未来

作者丨lochsh

译者丨马可薇

策划丨王文婧

Rust 作为新兴编程语言深受 Haskell 和 OCaml 等函数式编程语言的影响,使得它在语法上与 C++ 类似,但在语义上则完全不同。Rust 是静态类型语言,同时具有完整类型推断,而不是 C++ 的部分类型推断,它在速度上可与 C++ 媲美的同时,也保证了内存安全。

索引的故事

在详细介绍 Rust 之前,我们先举一个例子。想象你是一个为新房子搭建煤气管道的工人,你的老板想要你去地下室把煤气管连到街上的主煤气管道里,然而你下楼时却发现有个小问题,这个房子并没有地下室。所以,现在你要做什么呢?什么都不做,还是异想天开地妄图通过把煤气主管道连到隔壁办公室的空调进气口来解决问题?不管怎么说,当你向老板汇报任务完成时,你或许会在煤气爆炸的土灰中以刑事疏忽罪起诉。

这就是在某些编程语言中会发生的事。在 C 里是数组,C++ 里可能是向量,当程序试图寻找第 -1 个元素时,什么都有可能发生:或许是每次搜索的结果都不同,让你意识不到这里存在问题。这种被称作是未定义的行为,它发生的可能性并不能完全被杜绝,因为底层的硬件操作从本质上来说并不安全,这些操作在其他的编程语言里可能会被编译器警告,但是 C/C++ 并不会。

推荐阅读