编译期依赖类型:给系统编程加一层模态类型系统
来源:thenumb.at — 2026-10-26
📋 概述
Max Slater 认为编译期依赖类型迟早会进入系统编程,但 C 的 _Generic、C++ 的模板与 constexpr、Rust 的 const 泛型、Zig 的 comptime 要么限制重重,要么缺少完整类型系统。他正在开发的 Syl 用模态类型系统表达编译期计算:每个值除类型外还有两条模态轴——静态/动态与擦除/非擦除,模态只允许弱化不允许加强,静态值可以当动态值用,反之不行。设计灵感来自 András Kovács 的两级类型论与 OxCaml 的模态方案。
🔑 核心要点
- 每个值除类型之外还带两条模态轴:staticity 与 erasure。
- 模态只能弱化不能加强:静态值可当动态值用,反向不成立。
- 字面量属于 static unerased,编译期与运行期都可知。
- 设计参考两级类型论与 OxCaml 的所有权、可写模态。
💡 金句
It seems inevitable that compile-time dependent types will come to systems programming.
👍 0
👎 0
← 返回 Hacker News 首页