Oberon-2语言报告"编程语言Oberon-2"在附录A中有以下定义:
两个变量 a 和 b ,类型为 T a 和 T b 属于相同类型如果
- T a 和 T b 两者都用相同的类型标识符表示,或
- T a 被声明为等于 T b < / sub>在形式 T a = T b < / em> ,或
- a 和 b 出现在变量,记录字段或形式参数声明中的相同标识符列表中,并且不是开放数组。
醇>
给出类型声明
Ta = INTEGER
Tb = INTEGER
Tc = Tb
上述定义中的第二段表明
这是对Oberon-2中相同类型的正确解释吗?据我所知,Oberon-2在名称等价方面非常严格,在这种情况下,解释实际上是有道理的。那么Standard Pascal和ISO Modula-2呢?
答案 0 :(得分:1)
问题中相同类型的解释遵循所谓的严格名称等值。例如,在Ada中,通过派生类型支持此功能。在严格的名称等价下,每个类型声明引入了一个不同的类型然而,Pascal,Modula-2和Oberon都使用非严格名称等价。这意味着对于类型标识符 T a ,声明 T b = T a 和 T c = T a make T b 和 T c 等价物。