コンパイル

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

    変換援助プログラムは、コンパイル時データの中で /TITLE 指定を見つけると、これを除去します。

  6. ILE RPG は、データ構造におけるフィールドの重なりを検出することに より厳格です。オーバーラップ・オペランドがかかわるいくつかの計算命令では、ILE RPG がメッセージを出し、OPM コンパイラーは出しません。
  7. ILE RPG において NOT という語は変数名として使用することができません。 NOT は式の中の演算子として使用される特殊語です。
  8. コンパイル時に、ソースはメイン・ソース・ファイルの CCSID を使用して 読み取られますが、OPM RPG の場合には、ソースはジョブの CCSID を使用して 読み取られます。