Rust 与「内存安全」无关
虽然当下与内存安全相关的讨论围绕着Rust相对于C/C++/Zig/Go等语言的安全性展开,但Rust的主要目标是确保程序的正确性。 Rust并不仅仅是关于内存安全的。尽管人们普遍认为Rust是一种内存安全的语言,但实际上,Rust更注重的是语言的正确性,而不仅仅是内存安全。 在批评其他语言时,人们常常会以"你的程序出错了,那是你技术不行"作为回应,但实际上这与技术水平无关。 在形式语言理论 (formal language theory) 中,描述语法的规则必须与您想要包含在语言中的规则完全匹配。这意味着语法必须排除任何没有定义语义的单词,同时语言也不应该为任何无法由语法规则解析的程序指定语义。这种双向关系确保了语法与语言之间的一致性,使得对语法和语言之间的关系进行研究更加准确和可靠。 形式语言理论还提供了关于任何程序执行可以被抽象机器的一组语法规则表示的知识。就像您可以定义一组语法规则来解析带括号的算术表达式一样,您也可以定义一组语法规则来模拟C程序的执行。这种抽象机器的模型是C的基础,用于形式化规范语言中的行为。 C语言的一个弱点在于其存在未定义行为。当您对空指针进行解引用时,结...
