V4R4 での変更点

V4R2 以降の RPG IV の主な拡張機能は、スレッド化された 環境内で ILE RPG モジュールを安全に実行するための サポート、新しい 3 桁および 20 桁の符号付きおよび符号なし数字データ・タイプ、 さらに新しい汎用文字セット・バージョン 2 (UCS-2) データ・タイプのサポート と、UCS-2 フィールドと図形フィールドまたは 1 バイト文字フィールドとの間の 変換のサポートです。

以下は、これらの拡張機能をリストしたものです。

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

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

表 9. V4R2 以降に変更された言語要素
言語単位 要素 説明
制御仕様書キーワード OPTION(*{NO}SRCSTMT) *SRCSTMT は、デバッグのためにステートメント番号を生成する際にコンパイラーが SEU 順序番号およびソース ID を 使用するよう要求できるようにします。 上記以外の場合、ステートメント番号が、そのリストの行番号と関連するように指定し、 それらの番号は順次に割り当てられます。
OPTION(*{NO}DEBUGIO) *{NO}DEBUGIO は、入出力仕様書について停止点を生成するかどうかを決定します。
定義仕様書キーワード INZ(*EXTDFT) 外部記述データ構造サブフィールドが、DDS 内で指定されているデフォルト値に 初期化できるようになりました。
INZ(*USER) どの文字フィールドまたはサブフィールドも、現行ユーザー・プロファイルの名前に 初期化できます。
OVERLAY(名前:*NEXT) 特殊値の *NEXT は、サブフィールドを、オーバーレイされたフィールド内で 次に使用可能な位置に位置付けることを示します。
OPTIONS(*NOPASS *OMIT *VARSIZE *STRING *RIGHTADJ) 関数プロトタイプ内の値または固定情報パラメーターに指定された 新しい OPTIONS(*RIGHTADJ) は、パラメーターとして 渡された文字、図形、または UCS-2 値は、プロシージャー呼び出しで渡される 前に右寄せすることを示します。
定義仕様書 33 から 39 桁目 (終了位置/長さ) 3 桁および 20 桁が、I データ・タイプと U データ・タイプに使用できます。 1 バイトおよび 8 バイト の整数符号なしデータ をサポートするために、内部データ・タイプに使用できる値のリストに追加 されました。
内部データ・タイプ C (UCS-2 固定長形式または可変長形式) 定義仕様書で使用可能な内部データ・タイプのリストに追加されました。 UCS-2 (Unicode) 文字セットは、多数の書き込み言語の文字を コーディングできます。 このフィールドは、文字の長さが 2 バイト の文字フィールドです。
データ形式 C (UCS-2 固定長形式または可変長形式) UCS-2 形式が、プログラム記述ファイルの入力仕様書 および出力仕様書で 使用可能なデータ形式のリストに追加されました。
コマンド・パラメーター OPTION CRTBNDRPG および CRTRPGMOD コマンドの OPTION パラメーターに *NOSRCSTMT、*SRCSTMT、 *NODEBUGIO、および *DEBUGIO が追加されました。
表 10. V4R2 以降の新規言語要素
言語単位 要素 説明
制御仕様書キーワード CCSID(*GRAPH: *IGNORE | *SRC | 番号) モジュールにデフォルトの図形 CCSID を設定します。この設定値 は、リテラル、コンパイル時データ、およびプログラム記述入出力フィールドと 定義に使用されます。 デフォルト値は *IGNORE です。
CCSID(*UCS2: 番号) モジュールにデフォルトの UCS-2 CCSID を設定します。この設定値 は、リテラル、コンパイル時データ、およびプログラム記述入出力フィールドと 定義に使用されます。 デフォルト値は 13488 です。
INTPREC(10 | 20) 式の中の 2 進算術演算の整数および符号なし中間値の 10 進精度を指定します。 デフォルト値の INTPREC(10) は、10 桁の精度を使用することを示します。
OPENOPT{(*NOINZOFL | *INZOFL)} ファイルを開いた時点で、オーバーフロー標識を *OFF にリセットする 必要があるかどうかを示します。
THREAD(*SERIALIZE) モジュールが、マルチスレッド化された環境内で実行できることを示します。 モジュール内のプロシージャーへのアクセスは、順番に行われます。
定義仕様書キーワード CCSID(番号 | *DFT) 定義に図形と UCS-2 の CCSID を設定します。
組み込み関数 %DIV(n:m) 2 つのオペランド n と m で整数の割り算を実行します。その 結果は、n/m の整数部分になります。これらのオペランドは、小数点以下の 桁数がない (ゼロの) 数値でなければなりません。
%GRAPH(文字式 | 図形式 | UCS2 式 {: ccsid}) 単一バイト文字、グラフィック、または UCS-2 データからグラフィック・データに変換 します。
%REM(n:m) 2 つのオペランド n と m で整数剰余の演算を実行します。その 結果は n/m の剰余になります。これらのオペランドは、小数点以下の 桁数がない (ゼロの) 数値でなければなりません。
%UCS2(文字式 | 図形式 | UCS2 式 {:ccsid}) 単一バイト文字、グラフィック、または UCS-2 データから UCS-2 データに変換します。
%XFOOT(配列式) 指定された数値配列式内の全要素の合計を求めます。
命令コード EVALR 形式 result=expression の割り当てステートメントを評価します。この結果は右寄せされます。
FOR 命令のグループを開始してそのグループを処理する回数を指示 します。初期値、増分値、限界値は、自由形式の式にすることができます。
ENDFOR ENDFOR は、FOR 命令によって開始された命令のグループを終了します。
LEAVESR サブルーチン内の任意の場所から終了するのに使用します。