Rational Developer for System z
Enterprise COBOL for z/OS バージョン 4.1 コンパイラーおよびランタイム 移行ガイド


PERFORM . . . VARYING . . . AFTER に対する修正処置

FLAGMIG によってフラグが立てられた PERFORM...VARYING ステートメントは変換する必要がありま す。上記の 4 つの依存関係がすべて該当する PERFORM...VARYING ステートメントの変換方法 の 1 つを以下に示します。
PERFORM xx
   VARYING id-2 FROM id-3 BY id-4 UNTIL cond-1
     AFTER  id-5 FROM id-6 BY id-7 UNTIL cond-2
     AFTER id-8 FROM id-9 BY id-10 UNTIL cond-3.
これは、以下のように変換します。
MOVE id-3 TO id-2.
MOVE id-6 TO id-5
MOVE id-9 TO id-8

PERFORM UNTIL cond-1
  PERFORM UNTIL cond-2
    PERFORM UNTIL cond-3
      PERFORM xx
      ADD id-10 TO id-8
    END-PERFORM
    MOVE id-9 TO id-8
    ADD id-7 TO id-5
  END-PERFORM
  MOVE id-6 TO id-5
  ADD id-4 TO id-2
END-PERFORM

この例では、すべての id-x が ID であると仮定しています。いずれかが索引名である場合は、MOVE ステートメントではなく SET ステートメントを使用しなければなりません。

上記の例は、変換の最悪の例です。(潜在的に) 依存関係のある ID を使用するステートメントの一部を変更するだけで、改良することができます。たとえば、id-6 が id-2 に依存しているだけであり、他の依存関係はない場合は、上記の変換を以下のように減らすことができます。
MOVE id-3 TO id-2.
MOVE id-6 TO id-5.

PERFORM UNTIL cond-1
  PERFORM UNTIL cond-2
    PERFORM VARYING  id-8 FROM id-9 BY id-10 UNTIL cond-3
         PERFORM XX
    END-PERFORM
    ADD id-7 TO id-5
  END-PERFORM
  MOVE id-6 TO id-5
  ADD id-4 TO id-2
END-PERFORM

ご利用条件 | フィードバック

このインフォメーション・センターでは Eclipse テクノロジーが採用されています。(http://www.eclipse.org)