モジュール・オブジェクト

モジュール・オブジェクトは、ILE コンパイラーの出力であり、 実行できない オブジェクトです。モジュール・オブジェクトは、 システムに対しシンボル *MODULE によって示されます。モジュール・オブジェクトは、 実行可能な ILE オブジェクトを作成するための基本的な構成ブロックです。これは、ILE と OPM の間の重要な相違点です。OPM コンパイラーの出力は、 実行可能 なプログラムです。

モジュール・オブジェクトは、1 つ以上のプロシージャーの指定とデータ項目 の指定により構成することができます。1 つのモジュール内のプロシージャーまたはデータ項目に、別の ILE オブジェクト から直接アクセスすることができます。 他の ILE オブジェクトから直接アクセス可能なプロシージャーやデータ項目のコーディングについて詳しくは、ILE HLL の「プログラマーの手引き」を参照してください。

ILE RPGILE COBOLILE C、および ILE C++ は、すべて以下の共通の概念を備えています。
  • エクスポート

    エクスポートは、 モジュール・オブジェクトにコーディングされたプロシージャーまたは データ項目の名前であり、他の ILE オブジェクトが使用することができます。エクスポートは、 その名前および関連するタイプ (プロシージャーまたはデータ) によって識別されます。

    エクスポートは定義とも呼ばれます。

  • インポート

    インポートは、 現行モジュール・オブジェクトで定義されていないプロシージャーまたは データ項目の名前を使用または参照することです。インポートはその名前および関連する タイプ (プロシージャーまたはデータ) によって識別されます。

    インポートは参照とも呼ばれます。

モジュール・オブジェクトは ILE 実行可能オブジェクトの基本的な構成ブロック です。 したがって、モジュール・オブジェクトの作成時点で、以下のデータおよび プロシージャーも生成されることがあります。
  • デバッグ・データ

    デバッグ・データは、 実行中の ILE オブジェクトのデバッグに必要なデータです。このデータはオプションです。

  • プログラム入り口プロシージャー (PEP)

    プログラム入り口プロシージャーは、コンパイラー生成コードで、 動的プログラム呼び出し時に ILE プログラムの入り口点になります。これは OPM プログラム の入り口点として提供されるコードに類似しています。

  • ユーザー入り口プロシージャー (UEP)

    プログラマーによって作成される ユーザー入り口プロシージャーは、 動的プログラム呼び出しのターゲットです。 これは PEP から制御を渡されるプロシージャーです。C プログラムの main() 関数は、ILE において、そのプログラムの UEP になります。

図 1 は、モジュール・オブジェクトの概念図を示しています。この例で、 モジュール・オブジェクト M1 は、2 つのプロシージャー (Draw_Line と Draw_Arc) お よび 1 つのデータ項目 (rtn_code) をエクスポートしています。モジュール・オブジェクト M1 は、Draw_Plot と いうプロシージャーをインポートしています。 このモジュール・オブジェクトには、PEP に対応する UEP (プロシージャー Draw_Arc)、 およびデバッグ・データが含まれています。

図 1. モジュールの概念図
モジュールの概念図
*MODULE オブジェクトの特性
  • *MODULE オブジェクトは ILE コンパイラーからの出力です。
  • ILE 実行可能オブジェクトの基本的な構成ブロックです。
  • 実行可能オブジェクトではありません。
  • PEP を定義することができます。
  • PEP を定義すると、UEP も定義されます。
  • プロシージャー名およびデータ項目名をエクスポートすることができます。
  • プロシージャー名およびデータ項目名をインポートすることができます。
  • デバッグ・データを定義することができます。