Rust 需要一个官方规范 - 博客 - 第二阶段

主要观点:目前不能绝对确定地推理 Rust 代码,但应该能够做到,是时候有 Rust 规范了。以 C++为例,其语言规则明确,能准确预测程序输出;而 Rust 代码在某些情况下输出会出乎意料,如变量名简化会改变Foo对象的丢弃时机,Rust 参考文档无法明确解释。Rust 语言规范能帮助理解编译器行为、应对不同平台和编译器、开发代码分析工具等。Ferrocene 语言规范可解释某些 Rust 程序,它是描述性的,与 Rust 项目的官方规范不同。编程语言会演进,C 从实验室实验发展为国际标准,C++标准化后创新变慢,Rust 目前创新较快。在系统编程、写可移植软件等情况下需要规范,对于安全关键基础设施,规范更重要,如 EAL5 要求有明确权威的规范,Rust 用于安全关键软件需官方的 Rust 语言规范,目前的 Rust 参考文档不是真正的规范,短期内需要这样的规范,且这不仅是技术挑战也是政治挑战,Ferrocene 语言规范已在推进并可能被 Rust 项目采用。
关键信息

  • C++程序输出固定,语言规则明确。
  • Rust 代码输出有时出人意料,参考文档无法明确。
  • Rust 语言规范的作用及不同类型规范的特点。
  • 编程语言的演进过程及不同阶段的特点。
  • 安全关键领域对规范的需求及 Rust 在其中的情况。
    重要细节
  • C++中变量的存储持续期和析构函数规则。
  • Rust 中let _tmp =...let _ =...的区别及对Foo对象丢弃时机的影响。
  • C、C++标准化的过程及对语言发展的影响。
  • 不同安全等级对工具规范的要求及 Rust 在其中的地位。
  • Ferrocene 语言规范的现状及可能被 Rust 项目采用的情况。
阅读 15
0 条评论