Dependent typing(依赖类型/依赖型类型系统):一种类型系统特性,使“类型”可以依赖于“值”(或程序中的具体数据)。因此,类型能够表达更精确的约束与规格(例如“长度为 n 的向量”),常用于形式化验证、证明辅助器与高级函数式编程语言中。(更广义相关概念常称 dependent types;此外“typing”也可泛指“类型判定/类型赋予”的过程。)
/dɪˈpɛndənt ˈtaɪpɪŋ/
Dependent typing can guarantee that a vector’s length matches what the program expects.
依赖类型可以保证向量的长度与程序期望一致。
With dependent typing, you can encode preconditions in types, so many errors are caught before the code runs.
借助依赖类型,你可以把前置条件编码进类型里,从而在运行前就捕获许多错误。
dependent 来自拉丁语 dependere(“悬挂于、依赖于”),引申为“取决于”。typing 源自 type(“类型/铅字模”)在计算机语境中的发展,指“进行类型标注或类型推断/判定”。“dependent typing”作为术语主要在现代类型理论与程序语言研究中流行,用来指“类型依赖值”的类型系统实践与方法。