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

ブロックの活動化

割り振り内、ストレージの解放、名前の有効範囲の削除では、 各ブロックは同じ役割を果たします。 どのようにして活動化されるかということについては、プロシージャー および 開始ブロック に記載されています。 パッケージは、活動化されず、終了もしません。

ブロックが活動化されているときには、以下のことが行われます。

自動変数の初期値およびエクステントは、同じブロック内で宣言されたほかの 自動変数の値やエクステントによって変化してはなりません。 例えば、以下の初期設定を行うと、 JK についての無効な結果を生成する場合があります。

  dcl I init(10),J init(K),K init(I);

データ項目の宣言は、相互に依存し合うものであってはなりません。 例えば、次のような宣言は正しくありません。

  dcl A(B(1)), B(A(1));

  dcl D(E(1)), E(F(1)), F(D(1));

ブロックが活動化される途中でエラーが発生し、ERROR 条件 (またはその他の条件) が 起こることがあります。 そのような場合は、そのブロックの環境が不完全であることがあります。 特に、一部の自動変数が割り振られていないことがあります。 ERROR 条件の発生後に自動変数を参照するステートメントが実行されると、 割り振られていないストレージを参照する可能性があります。 割り振られていないストレージの参照の結果は未定義です。


Terms of use | Feedback

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