呼び出しスタック

呼び出しスタックとは、呼び出しスタック項目のリストであり、後入れ 先出し (LIFO) 順序に従います。 呼び出しスタック項目は、プログラムまたはプロシージャーの呼び出し です。 1 つのジョブにつき 1 つの呼び出しスタックがあります。

ILE プログラムが呼び出されると、最初にプログラム入力プロシージャーが呼び出しスタックに追加されます。するとシステムは自動的にプロシージャー呼び出しを実行し、関連したユー ザーのプロシージャー (メイン・プロシージャー) が追加されます。 プロシージャーが呼び出される時に、ユーザーのプロシージャー (メイン・プロシージャーまたはサブプロシージャー) だけが追加されます。すなわちプログラム入力プロシージャーのオーバーヘッドはありません。

図 59 は、ILE プログラムを呼び出す OPM プログラムから構成されるアプリケーションの呼び出しスタックを示します。ILE プログラムの RPG メイン・プロシージャーは RPG サブプロシージャーを 呼び出し、次に C プロシージャーを呼び出します。本書の図では、最新項目がスタックの下部にあるということ に注意してください。

図 59. 呼び出しスタック上のプログラム呼び出しと プロシージャー呼び出し
呼び出しスタック上のプログラム呼び出しとプロシージャー呼び出し
注:
ユーザー入り口プロシージャー (UEP) の呼び出しは自動的に行われる ので、プログラム呼び出しでは、プログラム入力プロシージャーとユーザー入り口プロシージャーの呼び出しが同時に行われます。したがって ここからは、プログラム呼び出しの 2 つのステップはこの章および残りの章で 出てくる呼び出しスタックの図表と合わせて参照してください。