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)』