コンパイル

  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. 変更の開始コンパイル時に、ソースは TGTCCSID パラメーターで指定されたCCSIDを使用して読み込まれますが、OPM RPGではジョブのCCSIDを使用して読み込まれます。変更の終わり