COBOL2002 使用の手引 手引編


31.2.5 共通式の削除

同一の式が複数ある場合,最初の式だけ計算をし,残りの式は最初の式の結果で置き換えることによって演算時間の短縮を図ります。

(最適化前)
COMPUTE C = A + B.
COMPUTE D(I) = A + B.
COMPUTE E = A + B + C.
MOVE D(I) TO F.
(最適化後)
ADD     A TO B GIVING C temp.
MOVE    temp TO D(I).
COMPUTE E = temp + C.
MOVE D(I) TO F.
最適化条件

二つの式XとYの間で式の共通化が行われる条件は次のとおりです。

  • 式XはYの前にある。

  • 式XまたはYがループ内にある場合,式YまたはXも同一ループ内にある。

  • 式Yは代入を含まない。

  • 式X,式Yの両方で参照である同じ演算項に対して,式間でこの演算項への代入がない。