7.4 REALIGN指令 BACKWARD FORWARD


REALIGN指令类似于ALIGN指令但是被认为是可执行的。如果一个数组(或模板)被定义为DYNAMIC(见7.5节),则可以在任意时刻对它进行重对准。与重分配不同(见7.3节),重对准一个数据对象不会导致任何其它的对象被重映射。(可是,即使对一个对象进行重对准,如果它很大的话,也可能在运行时需要大量的计算和通信;程序员在使用这一特征时必须考虑到这一点。)

ALIGN指令仅能出现在作用域单元的说明部分。REALIGN指令与其类似,但仅能出现在作用域单元的执行部分。ALIGN和REALIGN的主要不同是在ALIGN中必须仅能以说明表达式作为下标或下标三元组,而在REALIGN中这种下标可以是任意整数表达式。另一个不同是ALIGN是一个属性,因此可以与其它属性组合在一起作为合成指令的一部分,而REALIGN不是属性(虽然REALIGN语句可以以属性语法的风格书写,使用“::”)

REALIGN的形式化语法如下所示:

H703 realign-directive  is REALIGN alignee align-directive-stuff
               or REALIGN align-attribute-stuff :: alignee-list

约束:

约束:

约束:

如果使用一个范围指令(见7.11节)来限制一个对准子所允许的分配格式的集合,则新映射应匹配范围指令中所指定的格式之一。


Copyright: NPACT BACKWARD FORWARD