コンパイル
- OPM RPG で CVTOPT(*NONE) を指定すると、RPG がサポートしないタイプまたは属性を持つ、 外部記述されたすべてのフィールドは無視されます。ILE RPG で CVTOPT(*NONE) を指定すると、外部記述のすべてのフィールドは、 外部記述で指定されたのと同じタイプでプログラムに取り込まれ ます。
- RPG IV では、制御仕様書の DATEDIT と DECEDIT との間に従属関係はありません。
- ILE RPG の作成コマンド (CRTBNDRPG および CRTRPGMOD) に関しては次
のとおりです。
- CRTRPGPGM コマンドの IGNDECERR パラメーターは、ILE RPG の 作成コマンドでは FIXNBR パラメーターに置き換えられました。 IGNDECDTA は、10 進 データ・エラーを無視して、次の機械命令から続行します。場合によっては、このため に、フィールドが、誤った値や予期せぬ値で更新されることがあります。FIXNBR は、デ ータが使用される前に予測可能な方法でそのデータを訂正します。
- 数値オーバーフローを許容するかどうかを制御する新しいパラメーター TRUNCNBR があります。
- RPG IV には、報告書簡易作成機能あるいはコマンドはありません。
- コンパイラーに MI リストを要求することはできません。
- コンパイラー・リストでは、デフォルトの OPTION(*NOSRCSTMT) が指定 されていると、行番号は 1 で始まり、ソースまたは生成仕様書の 1 行ごとに 1 ずつ増え ます。OPTION(*SRCSTMT) が指定されていると、行番号の代わりに順序番号が示されます。ソース ID は数値です。すなわち、/COPY メンバーまたは拡張 DDS に AA000100 を超える行番号はありません。
- RPG IV では、/TITLE などのコンパイラー指示ステートメントはすべてコンパイル時データより前 になければなりません。RPG IV は、/TITLE 指示ステートメントを見つけると、これをデータと見なします。(RPG III は、/TITLE 指定がソースのどこにあっても、これをコンパイラー指示
ステートメントと見なします。)
変換援助プログラムは、コンパイル時データの中で /TITLE 指定を見つけると、これを除去します。
- ILE RPG は、データ構造におけるフィールドの重なりを検出することに より厳格です。オーバーラップ・オペランドがかかわるいくつかの計算命令では、ILE RPG がメッセージを出し、OPM コンパイラーは出しません。
- ILE RPG において NOT という語は変数名として使用することができません。 NOT は式の中の演算子として使用される特殊語です。
- コンパイル時に、ソースはメイン・ソース・ファイルの CCSID を使用して 読み取られますが、OPM RPG の場合には、ソースはジョブの CCSID を使用して 読み取られます。