項目整列によるオブジェクト コードの効率向上

一部のコンピューターのメモリは、アドレス指定用の固有の境界 (語の境界、半語の境界、バイトの境界など) を持つように構成されている。データの格納に関しては、これらの固有の境界を意識する必要はない。

ただし、データの用途 (算術演算や添え字など) によっては、これらの境界に合わせてデータを格納した方が効率が良い場合がある。具体的には、複数のデータ項目の部分が隣接する固有境界の間に含まれている場合、または単一のデータ項目が固有境界によって分割されている場合には、ランタイム要素の追加の機械操作がデータのアクセスおよび格納用に繰り返される可能性がある。

追加の機械操作を避けるようにデータ項目を固有境界に合わせて配置することを、桁詰めという。桁詰めされた項目はその形式に合わせて処理される。桁詰めされた形式への変換は、項目へデータを格納する文 (READ および WRITE を除く) の実行中にのみ行われる。

桁詰めを行うには、次の 2 とおりがある。

  1. SYNCHRONIZED 句を使用する。
  2. SYNCHRONIZED 句を使わずに、固有境界に合わせてデータを構成する。

SYNCHRONIZED 句を使用して集団内で特殊な桁詰めを行うと、その集団を作用対象として使用する文の実行結果が影響を受ける場合がある。暗黙の FILLER の効果およびそれらの集団を参照する文の意味については、本章で後述する。