ILE RPG コンパイラーは、 新たに C/C++ および COBOL コンパイラーが組み込まれた IBM® Rational® Development Studio for i 製品の一部であり、 アプリケーション開発ツールセット・ツールです。
V4R4 以降の RPG IV の主要な機能強化は、 Java™ との簡単なインターフェース接続、 新しい組み込み関数、自由形式演算仕様書、オープンにするファイルの制御、 修飾サブフィールド名、およびエラー処理の拡張です。
以下は、これらの拡張機能をリストしたものです。
このリリースでは、これ以外の拡張も行われています。次のような機能強化がなされました。
次の表は、影響を受けた言語の部分に基づいて、変更された言語要素および新 しい言語要素を要約したものです。
| 言語単位 | 要素 | 説明 |
|---|---|---|
| 組み込み関数 | %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 拡張を新しく取ることができるようになりました。 |
| 言語単位 | 要素 | 説明 |
|---|---|---|
| データ・タイプ | オブジェクト | Java オブジェクトに使用されます。 |
| コンパイラー指示 | /FREE... /END-FREE | /FREE... /END-FREE コンパイラー指示は、自由形式演算仕様書ブロックを示します。 |
| /INCLUDE | SQL プリプロセッサーによって展開されない点を除き、/COPY と同等です。 コピーされたファイルの中にある、ネストされたファイルを組み込むために使用できます。コピーされたファイルは、組み込み SQL およびホスト変数を持つことはできません。 | |
| 定義仕様書キーワード | CLASS(*JAVA:クラス名) | オブジェクトのクラスを指定します。 |
| LIKEDS(データ構造名) | データ構造、プロトタイプされたパラメーター、あるいは戻り値が、 別のデータ構造のサブフィールドを継承することを指定します。 | |
| QUALIFIED | データ構造内のサブフィールド名が、データ構造名によって修飾されることを示します。 | |
| ファイル仕様書のキーワード | EXTFILE(ファイル名) | どのファイルをオープンするか指定します。値にはリテラルまたは変数を指定できます。デフォルトのファイル名は、ファイル仕様書の 7 桁目で指定されている名前になります。 デフォルトのライブラリーは *LIBL です。 |
| EXTMBR(メンバー名) | どのメンバーをオープンするか指定します。 値にはリテラルまたは変数を指定できます。デフォルト値は *FIRST です。 | |
| 組み込み関数 | %ALLOC(num) | 指定された容量の記憶域を割り振ります。 |
| %CHECK(comparator : base {: start}) | コンパレーターの中になく基本ストリングの中にある先頭文字を検索します。 | |
| %CHECKR(comparator : base {: start}) | コンパレーターの中になく基本ストリングの中にある末尾文字を検索します。 | |
| %DATE(式 {:日付の形式}) | 式を日付に変換します。 | |
| %DAYS(数値) | 数値を日単位の期間に変換します。 | |
| %DIFF(オプション1:オプション2:単位) | 2 つの日付、時刻、またはタイム・スタンプの値の間の差 (期間) を、指定された単位で計算します。 | |
| %HOURS(数値) | 数値を時間単位の期間に変換します。 | |
| %LOOKUPxx(引数:配列 {:開始索引 {:要素の数}}) | 指定された引数に近い引数、または指定されたタイプに近いタイプを、指定された配列内で検索します。 | |
| %MINUTES(数値) | 数値を分単位の期間に変換します。 | |
| %MONTHS(数値) | 数値を月単位の期間に変換します。 | |
| %MSECONDS(数値) | 数値をマイクロ秒単位の期間に変換します。 | |
| %OCCUR(dsn-name) | 複数オカレンス・データ構造の現在位置を設定するか、または入手します。 | |
| %REALLOC(ポインター:数値) | 指定された容量の記憶域を、指定されたポインター用に再割り振りします。 | |
| %SECONDS(数値) | 数を秒単位の期間に変換します。 | |
| %SHTDN | システム・オペレーターがシャットダウンを要求しているかどうかをチェックします。 | |
| %SQRT(数値式) | 指定された数値の平方根を計算します。 | |
| %SUBDT(値:単位) | 日付、時刻、またはタイム・スタンプの値から、指定された部分を抽出します。 | |
| %THIS | 代わりに固有メソッドが呼び出されたクラス・インスタンスに対する参照を含むオブジェクト値を戻します。 | |
| %TIME(式 {:時刻形式}) | 式を時刻に変換します。 | |
| %TIMESTAMP(式 {:*ISO|*ISO0}) | 式をタイム・スタンプに変換します。 | |
| %TLOOKUP(arg : search-table {: alt-table}) | 指定された引数に近い引数、または指定されたタイプに近いタイプを、指定されたテーブル内で検索します。 | |
| %XLATE(from:to:string{:startpos}) | 指定されたストリングを、変換元ストリングから変換先ストリングにもとづいて変換します。 | |
| %YEARS(数値) | 数値を年単位の期間に変換します。 | |
| 命令コード | MONITOR | 条件付きエラー処理を持つ命令のグループを開始します。 |
| ON-ERROR | 状況コードに基づいて、条件付きエラー処理を実行します。 | |
| ENDMON | 条件付きエラー処理を持つ命令のグループを終了します。 | |
| ELSEIF | ELSE 命令コードに IF 命令コードを続けたものと同等です。 | |
| CRTBNDRPG キーワードおよび CRTRPGMOD キーワード | LICOPT(オプション) | ライセンス内部コード・オプションを指定します。 |