V3R6/V3R2 での変更点

V3R1 以降の RPG IV の主な拡張機能は、1 つのモジュールを複数のプロシージャーを使用してコーディングする機能です。これは何を意味するでしょう? ナット・シェル では、1 つのモジュールを 1 つまたは複数のプロトタイプ・プロシージャーを使用 してコーディングできることを意味します。この場合、プロシージャーは RPG サイクルを 使用しないで戻り値を持ち、実行することができます。

1 つのモジュールを複数のプロシージャーを使用して作成すると、作成するアプリケーション の機能を高めることができます。 すべてのアプリケーションは、特定のタスクを実行する と考えられる一連の論理単位から構成されます。 柔軟性を保持してアプリケーションを 開発するには、各論理単位をできるだけ独立させることが重要です。 各単位を 独立させることによって、以下のことが可能になります。

複数のプロシージャーを使用して 1 つのモジュールをコーディングする主な利点は、 モジュラー・アプリケーションのコーディングの制御が容易になり、効率が上がる ことです。 この利点はいくつかの方法で実現することができます。 以下を行うことができます。

モジュール内のメイン・プロシージャーの実行時の動作は、V3R1 プロシージャーの場合 と同じです。 それ以降のプロシージャーの実行時の動作は、V3R1 プログラムとは いくらか異なります。プロシージャーの最後および例外処理の領域で特に 異なります。 これらの相違点は、これらのプロシージャーについてはサイクル・コード が生成されないために生じます。

他の拡張は、このリリースについても行われています。これには以下のものが含まれます。

次の表は、影響を受けた言語の部分に基づいて、変更された言語要素および新 しい言語要素を要約したものです。

表 15. V3R1 以降に変更された言語要素
言語単位 要素 説明
ファイル仕様書キーワード PREFIX(接頭部ストリング {:置き換えられる文字数}) フィールド名に対するストリングの接頭部を付けること、 またはフィールド名の部分的な変更を可能にします。
定義仕様書キーワード CONST{(定数)} 名前付き定数の値を指定するか、または参照によって渡される プロトタイプ・パラメーターが 定数値を持っていることを示します。
PREFIX(接頭部ストリング {:置き換えられる文字数}) フィールド名に対するストリングの接頭部を付けること、 またはフィールド名の部分的な変更を可能にします。
命令コード RETURN 呼び出し元に制御を戻し、 指定されている場合は、値を戻します。
表 16. V3R1 以降の新しい言語要素
言語単位 新規 説明
制御仕様書キーワード COPYRIGHT('版権ストリング') 版権情報をモジュールおよびプログラムに関連付ける ことができるようにします。
EXTBININT{(*NO | *YES)} プログラム処理中に、外部記述ファイル内の 2 進数フィールドに 整数形式を割り当ていることを指定します。
NOMAIN モジュールにサブプロシージャーのみがあることを示します。
ファイル仕様書キーワード BLOCK(*YES |*NO) レコードのブロック化の発生を制御できるようにします (他の条件が 満たされた場合)
定義仕様書キーワード ALIGN 整数フィールドまたは符号なしフィールドの位置合わせを 行うかどうかを指定します。
EXTPGM(名前) プロトタイプ・プログラムの 外部名を示します。
EXTPROC(名前) プロトタイプ・プロシージャーの 外部名を示します。
OPDESC プロトタイプ・バインド呼び出しで、操作記述子を渡すかどうかを 指定します。
OPTIONS(*NOPASS *OMIT *VARSIZE) プロトタイプ・パラメーターに関する各種のオプションを 指定します。
STATIC ローカル変数が静的記憶域を 使用するように指定します。
VALUE プロトタイプ・パラメーターを値によって 渡すように指定します。
組み込み関数 %PARMS 呼び出しで渡すパラメーターの個数を 戻します。
命令コード CALLP プロトタイプ・プログラムまたはプロシージャーを呼び出します。
仕様書タイプ プロシージャー仕様書 サブプロシージャー定義の先頭と終端を 示します。
定義タイプ PR プロトタイプ定義の先頭を示します。
PI プロシージャー・インターフェース定義の先頭を 示します。
24 から 25 桁目のブランク プロトタイプ・パラメーターを定義します。