V5R1 での変更点

ILE RPG コンパイラーは、IBM IBM WebSphere Development Studio for iSeries 製品の一部で、 新たに C/C++ コンパイラーおよび COBOL コンパイラーを組み込んだ アプリケーション開発ツールセットのツールの一部です。

V4R4 以降の RPG IV の主要な機能強化は、 Java とのインターフェースがより容易になったこと、新たな組み込み関数、自由形式演算仕様書、 オープン対象となるファイルの制御、修飾されたサブフィールド名、およびエラー処理の拡張です。

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

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

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

表 7. V4R4 以降に変更された言語要素
言語単位 要素 説明
組み込み関数 %CHAR(式{:形式}) オプションである 2 番目のパラメーターには、使用したい日付、時刻、 またはタイム・スタンプの形式を指定します。 結果は、ここで指定された形式とセパレーターを使用し、入力データの形式とセパレーターは使用しません。
%PADDR(プロトタイプ名) この関数は、その引数に応じて、プロトタイプ名または入り口点名のいずれかをとることが できるようになりました。
定義仕様書キーワード EXTPROC(*JAVA:クラス名:プロシージャー名) これを指定すると、Java メソッドが呼び出されます。
EXTPROC(*CL:プロシージャー名) プロシージャーが戻り値に ILE CL 規則を使用することを指定します。
EXTPROC(*CWIDEN:プロシージャー名) プロシージャーが、パラメーター拡大付きで ILE C 規則を使用することを指定します。
EXTPROC(*CNOWIDEN:プロシージャー名) プロシージャーが、パラメーター拡大なしで ILE C 規則を使用することを指定します。
INZ(*LIKEDS) LIKEDS キーワードを指定して定義されたデータ構造が、その親データ構造から初期化を継承することを指定します。
LIKE(オブジェクト名) オブジェクトが、別のオブジェクトと同じクラスを持つことを指定します。
PREFIX(文字リテラル{:数値}) 指定された文字リテラルでサブフィールドに接頭語を付け、オプションで指定された文字数を置換します。
ファイル仕様書のキーワード OFLIND(名前) このキーワードは、任意の名前付き標識をパラメーターとしてとることができるようになりました。
PREFIX(文字リテラル{:数値}) 指定された文字リテラルでサブフィールドに接頭語を付け、オプションで指定された文字数を置換します。
命令コード DUMP (A) この命令コードは、DEBUG(*NO) が指定されていてもダンプが生成される、 A 拡張を新しく取ることができるようになりました。
表 8. V4R4 以降の新しい言語要素
言語単位 要素 説明
データ・タイプ オブジェクト Java オブジェクトに使用されます。
コンパイラー指示 /FREE ... /END-FREE /FREE... /END-FREE コンパイラー指示は、自由形式演算仕様書ブロックを示します。
/INCLUDE SQL プリプロセッサーによって展開されない点を除き、/COPY と同等です。 コピーされたファイルの中にある、ネストされたファイルを組み込むために使用できます。コピーされたファイルは、組み込み SQL またはホスト変数を持つことはできません。
定義仕様書キーワード CLASS(*JAVA:クラス名) オブジェクトのクラスを指定します。
LIKEDS(データ構造名) データ構造、プロトタイプされたパラメーター、あるいは戻り値が、 別のデータ構造のサブフィールドを継承することを指定します。
QUALIFIED データ構造内のサブフィールド名が、データ構造名によって修飾されることを示します。
ファイル仕様書のキーワード EXTFILE(ファイル名) どのファイルをオープンするか指定します。値にはリテラルまたは変数を指定できます。デフォルトのファイル名は、ファイル仕様書の 7 桁目で指定されている名前になります。 デフォルトのライブラリーは *LIBL です。
EXTMBR(メンバー名) どのメンバーをオープンするか指定します。 値にはリテラルまたは変数を指定できます。デフォルト値は *FIRST です。
組み込み関数 %ALLOC(数値) 指定された容量の記憶域を割り振ります。
%CHECK(コンパレーター:基本{:開始}) コンパレーターの中になく基本ストリングの中にある先頭文字を検索します。
%CHECKR(コンパレーター:基本{:開始}) コンパレーターの中になく基本ストリングの中にある末尾文字を検索します。
%DATE(式{:日付の形式}) 式を日付に変換します。
%DAYS(数値) 数値を日単位の期間に変換します。
%DIFF(オプション1:オプション2:単位) 2 つの日付、時刻、またはタイム・スタンプの値の間の差 (期間) を、指定された単位で計算します。
%HOURS(数値) 数値を時間単位の期間に変換します。
%LOOKUPxx(引数:配列{:開始索引{:要素の数}}) 指定された引数に近い引数、または指定されたタイプに近いタイプを、指定された配列内で検索します。
%MINUTES(数値) 数値を分単位の期間に変換します。
%MONTHS(数値) 数値を月単位の期間に変換します。
%MSECONDS(数値) 数値をマイクロ秒単位の期間に変換します。
%OCCUR(データ構造名) 複数オカレンス・データ構造の現在位置を設定するか、または入手します。
%REALLOC(ポインター:数値) 指定された容量の記憶域を、指定されたポインター用に再割り振りします。
%SECONDS(数値) 数を秒単位の期間に変換します。
%SHTDN システム・オペレーターがシャットダウンを要求しているかどうかをチェックします。
%SQRT(数値式) 指定された数値の平方根を計算します。
%SUBDT(値:単位) 日付、時刻、またはタイム・スタンプの値から、指定された部分を抽出します。
%THIS 代わりに固有メソッドが呼び出されたクラス・インスタンスに対する参照を含むオブジェクト値を戻します。
%TIME(式{:時刻形式}) 式を時刻に変換します。
%TIMESTAMP(式 {:*ISO|*ISO0}) 式をタイム・スタンプに変換します。
%TLOOKUP(引数:検索テーブル{:代替テーブル}) 指定された引数に近い引数、または指定されたタイプに近いタイプを、指定されたテーブル内で検索します。
%XLATE(変換元:変換先:ストリング{:開始位置}) 指定されたストリングを、変換元ストリングから変換先ストリングにもとづいて変換します。
%YEARS(数値) 数値を年単位の期間に変換します。
命令コード MONITOR 条件付きエラー処理を持つ命令のグループを開始します。
ON-ERROR 状況コードに基づいて、条件付きエラー処理を実行します。
ENDMON 条件付きエラー処理を持つ命令のグループを終了します。
ELSEIF ELSE 命令コードに IF 命令コードを続けたものと同等です。
CRTBNDRPG キーワードおよび CRTRPGMOD キーワード LICOPT(オプション) ライセンス内部コード・オプションを指定します。