プログラム・オブジェクトとして実行時のパフォーマンスを向上させるバインディング・プロセスでは、 プログラム・オブジェクトの一部としてバインドされたルーチンの静的プロシージャー呼び出しを使用することができます。 動的プログラム呼び出しは、ルーチンにアクセスする必要はありません。 異なる ILE HLL コンパイラーによって作成された個々のモジュール・オブジェクトを同じプログラム・オブジェクトにバインドすることができ、 それによって、最も適した言語でルーチンをコーディングしてから、 それを必要なプログラム・オブジェクトにバインドすることができるようになります。
以前にコンパイルされたモジュール・オブジェクトは、さまざまな順序でバインドして、 新しい実行可能プログラム・オブジェクトを作成することができます。 以前にコンパイルされたモジュール・オブジェクトを再使用して、元のソース・プログラムを再コンパイルせずに、 新しい実行可能プログラム・オブジェクトを作成することができます。 これによって、必要に応じてモジュール・オブジェクトを再使用できます。
モジュール・オブジェクトを変更するたびにプログラムを再作成するかわりに、サービス・プログラムを使用することができます。 共通ルーチンはサービス・プログラムとして作成できます。 ルーチンを変更してもそのインターフェースを変更しない場合、 またはインターフェースに対して上方に互換性のある変更だけが行われる場合、 サービス・プログラムを再作成することによってその変更を取り込むことができます。 これらの共通ルーチンを使用するプログラム・オブジェクトおよびサービス・プログラムは、再作成する必要はありません。
バインディング・プロセスを使用して、プログラム・オブジェクトを作成できる 2 つのパスがあります。 下記の図は、使用可能な 2 つのパスを示しています。
これらの 2 つのパスは両方ともバインディング・プロセスを使用します。 プログラム作成 (CRTPGM) コマンドは、COBOL モジュールの作成 (CRTCBLMOD) コマンド、 およびゼロまたはそれ以上のサービス・プログラムを使用して、ILE COBOL ソース・プログラムから作成されたモジュール・オブジェクトからプログラム・オブジェクトを作成します。
バインド COBOL PGM の作成 (CRTBNDCBL) コマンドは、1 つまたは複数の ILE COBOL コンパイル単位から 1 つまたは複数の一時モジュール・オブジェクトを作成して、 それから 1 つまたは複数のプログラム・オブジェクトを作成します。 プログラム・オブジェクトが作成されると、CRTBNDCBL は作成したモジュール・オブジェクトを削除します。 このコマンドは、COBOL モジュールの作成 (CRTCBLMOD) コマンドおよびプログラム作成 (CRTPGM) コマンドの 2 つを合わせた作業を単一のステップで実行します。 前に作成されたモジュール・オブジェクトおよびサービス・プログラムは、 バインディング・ディレクトリーを使用してバインドすることができます。 ただし、このステップを使用してバインドされる入力ソース・メンバーは、PEP モジュールでなければなりません。
バインディング・ディレクトリーには、ILE プログラムやサービス・プログラムの作成に必要になるモジュールの名前と ILE サービス・プログラムの名前が入っています。 バインディング・ディレクトリーに含まれているモジュールおよびサービス・プログラムが使用されるのは、 それらが現在未解決のインポート要求を満足できるエクスポートを提供している場合です。 バインディング・ディレクトリーはシステム・オブジェクトであり、記号 *BNDDIR によりシステムに対して識別されます。
バインディング・ディレクトリーの指定はオプショナルです。 バインディング・ディレクトリーを使用する理由は、便宜性とプログラム・サイズにあります。
バインディング・ディレクトリーの項目については、ほとんど制約がありません。 オブジェクトが存在していなくても、モジュールやサービス・プログラムの名前をバインディング・ディレクトリーに追加できます。
バインディング・ディレクトリーに関連して使用される CL コマンドのリストについては、「ILE 概念」を参照してください。 *BNDDIR オブジェクトには、以下のような特性があります。
(C) Copyright IBM Corporation 1992, 2006. All Rights Reserved.