Oberon-2 语言报告“The Programming Language Oberon-2”在附录 A 中有以下定义:
两个类型为T a和T b的变量a和b属于同一类型,如果
- T a和T b都由相同的类型标识符表示,或
- 在T a = T b形式的类型声明中,T a被声明为等于T b,或者
- a和b出现在变量、记录字段或形式参数声明的同一标识符列表中,并且不是开放数组。
给定类型声明
Ta = INTEGER
Tb = INTEGER
Tc = Tb
上述定义中的第二段表明
- Ta和Tb是不同的类型(没有声明Ta = Tb),
- Ta和Tc是不同的类型(没有声明Ta = Tc)并且
- Tc和 INTEGER 是不同的类型(没有声明Tc = INTEGER)。
这是对Oberon-2中相同类型的正确解释吗?据我了解,Oberon-2 在名称等效性方面非常严格,在这种情况下,这种解释实际上是有道理的。标准帕斯卡和 ISO Modula-2 怎么样?