组件类型系统详解
1. 类型特征
在类型系统中,有几个关键的概念对于理解和应用该系统至关重要,下面我们将详细介绍这些概念。
1.1 齿轮名称(Cog Names)
类型系统的一个重要目标是静态检查重绑定和同步方法调用是否在一个齿轮(cog)内局部执行。由于齿轮和对象是在运行时创建的实体,我们无法静态地知道它们的身份。为了解决这个问题,我们使用了一个线性类型系统来处理齿轮的名称,这些名称的范围包括 G、G′、G′′ 等,以此抽象出齿轮在运行时的身份。
类型系统为每个齿轮的创建分配一个唯一的齿轮名称,这使得我们能够检查两个对象是否位于同一个齿轮中。具体来说,我们使用记录 r 来将对象与其所在的齿轮关联起来,记录的形式为 G[ f : T ],其中 G 表示对象所在的齿轮,[ f : T ] 将对象的任何字段 f 映射到其类型 T。
例如,当一个存储在字段中的对象在方法体内被访问并由该方法返回时,我们需要一种方法将被访问字段的齿轮与返回值的齿轮绑定起来。这就需要我们在记录中保留对象字段的齿轮信息。
1.2 齿轮集合(Cog Sets)
为了处理创建的齿轮的线性性,并在创建后跟踪它们,类型系统除了使用标准的类型上下文 Γ 外,还使用了一个齿轮集合,用 G、G′、G′′ 等表示。这个集合用于跟踪到目前为止创建的所有齿轮,并使用运算符 ⊎ 来处理集合的不相交并集,即 G ⊎ G′。空集作为中性元素,满足 G ⊎ ∅ = ∅ ⊎ G = G。
1.3 方法签名(Method Signature)
方法签名 (G, r) 用于注释方法头。记录 r 在方法类型检查期间
超级会员免费看
订阅专栏 解锁全文
11万+

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



