会话类型基础:算法类型检查与应用探索
1. 算法类型检查的背景与动机
在程序设计中,类型检查是确保程序正确性的重要手段。传统的类型检查规则虽然能精确描述程序的结构,但在实际实现中存在两个主要问题。一是非确定性的上下文拆分操作难以实现,需要猜测如何将输入上下文拆分为两部分;二是在存在作用域限制时,难以猜测要包含在上下文中的类型。
为解决这些问题,我们对类型检查规则进行了重构。对于上下文拆分问题,新的类型检查系统不再在检查复杂进程前将输入上下文拆分为两部分或三部分,而是将整个上下文传递给第一个子进程,让其返回未使用的部分,再将该输出传递给第二个子进程,以此类推,最后一个子进程的输出即为当前进程的输出。对于作用域限制问题,我们要求程序员在作用域限制构造函数中进行显式注释,例如将作用域限制写为 (νxy: T )P ,表示在作用域 P 中 x 和 y 的类型为 T 。
2. 新类型系统的主要变化
新的类型系统在处理线性变量方面有了主要变化。线性变量的处理从公理(以及规则 [T-Repl] )转移到了在上下文中引入假设的规则,如 [A-Res] 、 [A-In] 、 [A-Repl] 。变量和常量的基本情况允许任何上下文通过判断,即使是线性类型。原有的变量规则 [T-Var] 被两条规则 [A-VarUn] 和 [A-VarLi
超级会员免费看
订阅专栏 解锁全文
1060

被折叠的 条评论
为什么被折叠?



