"Rust lite/MIR plus"的精确规格
如果您更喜欢视频而不是文字,我最近在 RustWeek 2025 上 演示了 MiniRust。 此外,您还可以查看此 更早的,但更深入的 MiniRust 为 RFMIG 演示。
MiniRust 是我对 Rust 语义规范的愿景的基石。它是一个理想化的 MIR 语言,其目的是作为 Rust 的"核心语言"。这是一个更大的故事的一部分,其目标是精确地规定 Rust 的操作行为,即 Rust 程序在执行时可能具有的行为:Rust 程序的行为首先通过将其翻译为 MiniRust(这不在本仓库的范围内),然后再考虑本文中规定的 MiniRust 程序的可能行为。这种翻译做了很多工作;例如,特性和模式匹配基本上在 MiniRust 级别上消失了。另一方面,MiniRust 非常关注诸如精确的计算顺序、数据表示以及什么是未定义行为、什么不是未定义行为等细节。
为了将内存的复杂性与 MiniRust 语句和表达式的语义分离开来,我们引入了 MiniRust 内存接口:
请将内存视为实现某个特性; MiniRust 语义是针对该特性的实际实现而泛型化的。 MiniRust 语言(在 lang 中定义)与其内存模型(在 mem 中定义)之间的接口是 无类型的和以字节为基础的 (但"字节"比你所预期的要复杂一些)。 目前,我们只定义了内存接口,但并未提供实现。 即使没有决定最终的内存模型将是什么样子,我们也可以回答许多关于 Rust 语义的有趣问题!
在 MiniRust 语言方面,要理解的最重要的概念是 值 和它与 类型 的关系。值是数据的高级结构化视图(例如数学整数);类型用于将值与其低级的字节级表示相关联。类型本质上只是参数。
暂无开放 Issues,或尚未同步最近议题。