Rational Developer for System z
Enterprise PL/I for z/OS, Version 3.8, 言語解説書

計算の順序

PL/I ステートメントには、 複数の式または参照が含まれていることがしばしばあります。 特定インスタンス (例えば、代入ステートメントなど) についての説明があるときを除いて、計算の順序は任意であり、(概念的には) 同時に計算することも可能です。

以下に例を示します。

  dcl (X,Y,Z) entry returns(float), (F,G,H) float;
  F = X( Y(G,H), Z(G,H) );

関数 YZ は、 それらに渡された引数の値を変更することがあります。 したがって、X が返す値は、 どちらの関数が最初に呼び出されるかに応じて異なります。 最初のパラメーターが最初に計算されると推定すべきではありません。 最後のパラメーターを最初に計算するほうが望ましい場合もあります。

INC 機能がそれに渡された引数の値を増やし、更新された値を戻すと仮定すると、 以下の例では、B(1,2) または B(2,1) は、 どちらの添え字が最初に計算されるかによって、結果が決まります。 どちらの添え字が最初に計算されるかを推定すべきではありません。

  dcl B(2,2);
  I = 0;
  put list ( B( INC(I), INC(I) ) );

Terms of use | Feedback

This information center is powered by Eclipse technology. (http://www.eclipse.org)