IBMBBGK*
IBMBBGKは、位置合わせされていないビット ストリングから別のビット ストリングへの連結、繰り返し、または割り当てを行うPL/I常駐ライブラリー ルーチンです。このモジュールの3つの入り口点は、内部サブルーチンを使用します。このサブルーチンは、ソースからデータを取得し、正しく位置合わせして対象フィールドに移動します。
ヒント
IBMBBGKでの大量の処理は、多くの場合回避できます。このモジュールは、ビット スイッチまたはビット ストリングを処理するために使用されます。変数が単一のビット スイッチの場合、B(バイナリー)の代わりにCHARとして宣言すると、このモジュールは回避されます。このモジュールは、ALIGNEDビット宣言を使用した場合も回避されることがあります。以下に、3つの割り当て例を示します。IBMBBGKモジュールは1つめの例でのみ呼び出されます。他の2つの例ではこのモジュールは呼び出されません。
40行めでは、変数からALIGNEDとして定義されない別のビット ストリングへの割り当てを実行します。
39 1 0 ASSIGN_UNALIGNED_GK PROCEDURE;
40 2 0 BIT_VECTOR(19) = TRUE;
41 2 0 END;
43行めでは、定数を割り当てます。IBMBBGKは呼び出されません。
42 1 0 ASSIGN_LITERAL_NO_GK: PROCEDURE;
43 2 0 BIT_VECTOR(19) = '1'B;
44 2 0 END;
46行めでは、ALIGNEDとして定義されたビット ストリングに変数を割り当てます。IBMBBGKは呼び出されません。
45 1 0 ASSIGN_ALIGNED_NO_GK: PROCEDURE;
46 2 0 BIT_VECTOR_ALIGNED(19) = TRUE;
47 2 0 END;
IBMBBGKでの処理を排除するために、位置合わせした変数、または定数を使用してください。
参考資料
『OS PL/I Resident Library: Program Logic(LY33-6008)』