4.5 映射集合上的等价和偏序 |
命名对象的映射集合被赋予一个以某种等价为模的偏序。粗略地讲,如果P和Q是两个映射,则PQ意味着P是部分指定的,且Q是一个与P一致的映射。这一概念将在下面的4.6节和7.8节中使用。
对用户的建议:由于这些条件说明起来很复杂,因此如果你总是提供显式接口(此接口,象下面所解释的一样,非常容易且一般自动发生),并且如果你不使用映射指针(一个所认可的扩展,将在7.8节中解释),则你可以完全忽略阅读本节。(对用户的建议结束)
详细的定义如下所示:
首先,我们为dist-format说明定义等价的概念:
1. 每一个dist-format与其自身等价。
2. 使用标志=来表示短语“等价于”,
BLOCK(n)=BLOCK(m) 当且仅当m和n具有相同的值
CYCLIC(n)=CYCLIC(m) 当且仅当m和n具有相同的值
CYCLIC=CYCLIC(1)
3. 除此之外,任何两个词法上不同的dist-format说明都不是等价的。
这里所定义的等价就是通常意义上的等价。
现在定义映射上的偏序:令S(“特殊的”)和T(“一般的”)是两个数据对象。
当且仅当下列条件之一成立,S的映射就是G的映射的一个特殊化(specialization):
1. G具有INHERIT属性,或
2. S不具有INHERIT属性,且满足下列所有约束:
(a)S是一个命名对象,且
(b)S和G所根本对准的目标的形状是相同的,且
(c)S和G的每一维在它们所各自根本对准目标上的对应维是相同的,且S和G的相应元素与其所各自根本对准目标的同一对应元素相对准,且
(d)或者
i. 不对S和G所根本对准的目标进行显式分配,或者
ii.将S和G所根本对准的目标都显式分配。在这种情况下,为G所根本对准目标指定的分配指令必须满足下列条件之一:
A.它没有dist-onto子句,或
B.它有一个“ONTO *”形式的的dist-onto子句,或
C.它所具有的dist-onto子句指明处理器排列的形状同某个分配指令所显式指定的形状相同,该指令用于S所根本对准的目标。
并且用于G所根本对准目标的分配指令还必须满足下列条件之一:
A.它没有dist-format子句,或
B.它有一个“*”形式的dist-format子句,或
C.每个dist-format等价于(在上面所定义的意义上)某个显式分配指令中dist-format子句的相应位置上的dist-format,该指令用于S所根本对准的目标。
根据这个定义,
.一个命名对象的任何映射都是其自身的一个特殊化
.如果A,B,和C是命名变量,且如果A的映射是B的映射的一个特殊化,同时B的映射又是C的映射的一个特殊化,则A的映射是C的映射的一个特殊化。
也就是说,正如应用到命名对象的映射中一样,特殊化关系是自反的,传递的 ,因此可应用它在命名对象的映射集合上产生一个等价关系:两个这种映射是等价的,当且仅当一个是另一个的特殊化。使用这个定义,特殊化关系就可以等价为模,在命名对象的映射集合上产生一个偏序。INHERIT映射是这一偏序中唯一的最大元素。
Copyright: NPACT |