変換のプロセス

統合変換プログラムを使用しないコンパイラーの場合、CICS ® は、EXEC CICS、EXEC CPSM、および EXEC DLI ステートメントを処理するために作成できる言語ごとに変換プログラムを提供します。 統合変換プログラムを使用するコンパイラーの場合、コンパイラーは直接 CICS 変換プログラムを呼び出して、これらのコマンドの変換を処理します。

言語変換プログラムは、ソース・プログラムを読み取り、新しいソース・プログラムを作成します。通常の言語ステートメントのほとんどは変更されませんが、CICS コマンドは、コーディングに使用する言語で必要とされる形式の CALL ステートメントに変換されます。 これらの呼び出しは、CICS 提供の EXEC インターフェース・モジュールを呼び出します。これらのインターフェース・モジュールは、後でロード・モジュールにリンク・エディットされ、実行時に要求されたサービスを呼び出します。

変換、コンパイル (アセンブリー)、およびリンク・エディットの 3 つのステップがあります。 図 1 に、これらの 3 つのステップを示します。

図1: アプリケーション・プログラムの準備
この図は、ソース・プログラムが SYSPUNCH ソース・ファイルに変換される方法を示しています。このファイルは、OBJECT MODULE およびコンパイラー・リストを作成するためにコンパイルされます。 オブジェクト・モジュールはリンク・エディットされて LOAD MODULE を形成し、LOAD LIBRARY に保管されます。
すべての言語について、変換プログラムは、次のように入力ファイル 1 つと出力ファイル 2 つを使用します。
SYSIN
(変換プログラムの入力) は、ソース・プログラムが入っているファイ ルです。

SYSIN ファイルが固定ブロック・データ・セットとして定義されている場合は、そのデータ・セットが保持できる最大レコード長は 80 バイトです。 80 バイト以上のレコード長を持つ固定ブロック・データ・セットを変換プログラムに渡すと、変換プログラムの実行が終了する結果になります。 SYSIN ファイルが可変ブロック・データ・セットとして定義されている場合は、そのデータ・セットが保持できる最大レコード長は 100 バイトです。 100 バイト以上のレコード長を持つ可変ブロック・データ・セットを 変換プログラムに渡すと、変換プログラムはエラーを起こして停止します。

SYSPUNCH
(変換済みソース) は、コンパイル (アセンブル) ステップへの入力となる、ユーザー・ソース・コードの変換されたバージョンです。 このファイルでは、ソースは次のように変更されています。
  • EXEC インターフェース・ブロック (EIB) 構造の挿入。
  • EXEC CICS、EXEC CPSM、および EXEC DLI コマンドが機能呼び出しステートメントに変更されました。
  • CICS DFHRESP、EYUVALUE、および DFHVALUE 組み込み関数が処理されました。
  • プログラムに EXEC DLI ステートメントが含まれている場合、データ交換ブロック (DIB) 構造および初期設定呼び出しの挿入。

変換される CICS コマンドは引き続きソースに表示されますが、コメントとしてのみ表示されます。 一般的に、非 CICS ステートメントは未変更です。 変換プログラムからの出力は、常に 80 バイトの固定レコード長データ・セットになります。

SYSPRINT。
(変換プログラムのリスト) には、変換プログラムが生成したメッセージの数およびすべてのメッセージと関連した重大度コードのうち最高のコードが表示されます。 NOOPTIONS オプションで抑制されていない限り、ユーザー・プログラムの変換に使用したオプションも表示されます。

COBOL、C、C++、および PL/I プログラムの場合には、SYSPRINT にメッセージそのものも含まれます。 さらに、変換プログラムの SOURCE オプションを指定した 場合には、SYSPRINT に注釈付きのソースのリストも含まれます。 このリストには、後続のコンパイル・リストとほとんど同じ情報が含まれているので、多くのシステムではこのリストを (NOSOURCE オプションで) 省略します。 しかし、コンパイル・リストに存在していなくて、このリストから必要になることがあるのは行番号です (変換プログラムが行番号を割り当てている場合)。 実行診断機能 (EDF) を使用してデバッグする場合には、行番号はコード中の場所を示す 1 つの方法になります。 VBREF オプションを指定した場合には、ユーザー・プログラム内のコマンドのリストが行番号による相互参照付きで得られるので、これを EDF 用のソース・リストの代わりとして使用することもできます。

アセンブラー言語のプログラムの場合には、SYSPRINT には、変換プログラムのオプション、メッセージ・カウント、および最大重大度コードしか含まれません。 メッセージそのものは、SYSPUNCH ファイルの関連ステートメントの後ろにコメントとして挿入されます。 これにより、アセンブラーは、ユーザーが検査できるようにメッセージをそのままアセンブラー・リストにコピーします。 また、変換プログラムが見つけた問題の結果として、アセンブラーが生成する MNOTE が含まれることもあります。

注: EXEC SQL を使用する場合は、SQL ステートメントを変換してバインドするための追加ステップが必要です。

CICS は、サポートする言語ごとに、これらのステップを順番に実行するプロシージャーを提供します。 「 アプリケーション・プログラムをインストールするための CICS 提供プロシージャーの使用 」では、これらのプロシージャーの使用方法と実際の使用方法について説明しています。

オプションの数を指定すると、変換処理を制御することができます。 例えば、EXEC DLI 呼び出しを使用する場合には、変換プログラムに指示する必要があります。

変換プログラムはエラー・メッセージを生成することがあり、このメッセージを検査することは、コンパイラーおよびリンケージ・エディターが生成するメッセージを検査することと同様に重要です。 これらのメッセージの場所については、 CICS 提供の変換プログラム を参照してください。

EXEC コマンドは、CICS インターフェース・モジュールを呼び出す CALL ステートメントに変換されます。 これらのモジュールは、リンク・エディット・ステップでオブジェクト・モジュールに組み込まれ、リンク・エディット出力リストに表示されます。 これらのモジュールについて詳しくは、 CICS 提供のインターフェース・モジュールを参照してください。