機能
SYNCHRONIZED(桁詰め)句は、計算機記憶の固有の境界に従い、基本項目の配置を指定する。
標準COBOL定義の一部を構成するにもかかわらず、X/Open COBOL言語定義では、この機能は明示的に除外されている。したがって、X/Openに準拠するCOBOL原始プログラムにおいてはこの機能を使用するべきではない。
一般形式
指令
- 予約語リストにフラグを付けたり修正したりするコンパイラ指令に加えて、下記の指令によって、この項に記述した構文または意味が影響を受ける可能性がある。
- IBMCOMP - NOIBMCOMPを指定しないと、SYNCHRONIZED句は説明のためだけの記述として扱われる。
構文規則
- SYNCHRONIZED句は、基本項目に対してだけ指定できる。
集団項目に対しても、SYNCHRONIZED句を指定できる。
- SYNCは、SYNCHRONIZEDの省略形である。
一般規則
- SYNCHRONIZED RIGHTは、基本項目を計算機の語の境界の右端の文字位置で終わらせるように割り付ける。
この句は、IBMCOMP指令を設定したときだけ、効力を発揮する。
- SYNCHRONIZED句の中でLEFT指定を指定しても、効力はない。
- SYNCHRONIZED句の効力は、定義上、作成者がどのように実装したかに左右される。
- SYNCHRONIZED句を指定すると、計算機の語の左右の境界の間に、対象とするもの以外はいっさい入り込まないように、データ項目が割り付けられる。
割付対象のデータ項目を格納するために必要な文字位置の個数が、計算機の語の左右の境界の間の文字位置の個数よりも少ないとき、使用されない文字位置は他のデータ項目のためには使われない。しかし、この使用されない文字位置は、下記のようになる。
- その基本項目が属する集団項目の大きさには含まれる
- そのデータ項目がREDEFINES句の右辺であるときには、再定義される文字位置に含まれる
SYNCHRONIZED句によって基本項目の大きさが変更されることはないが、余分の文字位置が割り当てられる。
- SYNCHRONIZED句にRIGHTもLEFTも指定しないと、実行効率がよくなるように、基本項目が計算機の語の左右の境界の間に割り付けられる。
- SYNCHRONIZED句を指定した項目が参照され
、その大きさに依存する操作(桁寄せ、切り捨て、桁あふれなど)が行われるときには、PICTURE句に指定した元の大きさが用いられる。
- データ項目にSYNCHRONIZED句および演算符号を指定すると、そのデータ項目の符号は通常の演算符号の位置に付けられる。この場合、SYNCHRONIZED LEFTまたはSYNCHRONIZED RIGHTのどちらを指定したかは、演算符号の位置に影響しない。
- OCCURS句を伴うデータ項目のデータ記述項、またはその下位に属するデータ項目のデータ記述項にSYNCHRONIZED句を指定すると、下記のようになる。
- 反復される各データ項目が桁詰めされる。
- 同じ表の中の他のデータ項目のために暗黙的に生成されるFILLERは、反復される各データ項目に対して生成される。
-
集団項目にSYNCHRONIZED句を指定すると、その集団項目に属するすべての項目に適用される。
- SYNCHRONIZED句を使用したときの効果については、COBOL言語の概念の章の文字の表現と基数の選定節を参照。