4.5 映射集合上的等价和偏序 BACKWARD FORWARD


命名对象的映射集合被赋予一个以某种等价为模的偏序。粗略地讲,如果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 BACKWARD FORWARD