コンパイル

  1. OPM RPG で CVTOPT(*NONE) を指定すると、RPG がサポートしないタイプまたは属性を持つ、 外部記述されたすべてのフィールドは無視されます。ILE RPG で CVTOPT(*NONE) を指定すると、外部記述のすべてのフィールドは、 外部記述で指定されたのと同じタイプでプログラムに取り込まれ ます。
  2. RPG IV では、制御仕様書の DATEDIT と DECEDIT との間に従属関係はあり ません。
  3. ILE RPG の作成コマンド (CRTBNDRPG および CRTRPGMOD) に関しては次 のとおりです。
  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 を使用して 読み取られます。