パラメーターおよび引数

プロシージャ ブロックは、呼び出すたびに異なる値で動作できると、有用性が大幅に向上します。引数およびパラメーターはそのような動作を可能にします。

引数は、呼び出し時にプロシージャ ブロックに渡される値です。パラメーターは、呼び出し先のプロシージャ ブロックでこれらの引き数を参照するために使用される名前です。

Open PL/I は、通常、記憶域アドレスを参照することによって、呼び出し先のプロシージャに引数を渡します。

次に例を示します。

   CALL P(A,B);
      .
      .
      .
   CALL P(D,E);
      .
      .
      .
P: PROCEDURE(X,Y);
      .
      .
      .
   PUT FILE (F) LIST(X,Y);
      .
      .
      .
   END P;

この例では、A および B はプロシージャ P の 1 番目の呼び出しの引数です。1 番目の呼び出しの結果として P が実行されている間は、引数 A はパラメーター X に対応し、引数 B はパラメーター Y に対応することになります。2 番目の呼び出しの結果として P が実行されている間は、D が X に対応し、E が Y に対応することになります。

引数が変数である場合は、変数の実際のアドレスが呼び出し先のプロシージャに渡されます。このアドレスを使用して、呼び出し先のプロシージャで引数の値を変更できます。

引数が定数または式である場合は、一時的な場所を使用して引数の現在の値が格納され、その一時的な場所のアドレスが呼び出し先のプロシージャに渡されます。