Unsafe Rust 并不和 C 语言一样:从 Aliasing 谈起
在社区中你可能听到一种说法:在 unsafe
块里你可以像 C1 语言那样写。然而事实并不是这样,C 语言的约束太差,事实上给了程序员太多“宽松”的东西。而在 Rust 里,unsafe 真的很 unsafe —— 当你要接管编译器为你做的安全保证,危险就暗藏在其中。
在社区中你可能听到一种说法:在 unsafe
块里你可以像 C1 语言那样写。然而事实并不是这样,C 语言的约束太差,事实上给了程序员太多“宽松”的东西。而在 Rust 里,unsafe 真的很 unsafe —— 当你要接管编译器为你做的安全保证,危险就暗藏在其中。
一时兴起想写一个随机句子生成器。正巧在学上下文无关语言 (Context-Free Language, CFL),意识到句子的结构很大程度上是一个上下文无关语法。查阅 X-bar 理论得到也确实类似如此。
同时正好在学 Rust,所以试了一下拿 Rust 编写这个生成器,并编译到 WebAssembly (WASM)。效果很成功!