OPM プログラムとは異なり、ILE プログラムはプログラム呼び出し以外の呼び出しも使用することができます 。ILE プログラムでは、他のプロシージャーを呼び出すために、静的プロシージャー 呼び出しまたはプロシージャー・ポインター呼び出しも使用することができます。また、プロシージャー呼び出しはバインド呼び出しとも言われています。
静的プロシージャー呼び出しとは、バインド中にプロシージャー呼び出しの 名前があるアドレスに帰着する ILE プロシージャーの呼び出しで、静的という用語はここから出て います。結果として、静的プロシージャー呼び出しを使用した実行時パフォーマンスは、 プログラム呼び出しを使用した実行時パフォーマンスより高速です。 静的呼び出しによって、操作記述子、省略パラメーターが可能になり、渡 されるパラメーター数の範囲が拡張します (399 まで)。
プロシージャー・ポインター呼び出しは、プロシージャーを動的に 呼び出す手段を提供します。 例えば、プロシージャー・ポインターをパラメーターとして別の プロシージャーに渡すことができ、このプロシージャーは次に 渡されたパラメーターで指定されたプロシージャーを実行することになります。 また、プロシージャー名の配列または異なるプロシージャーへプロシージャー呼び出しを動的に経路指定するアドレスも取り扱うことができます。呼び出されたプロシージャーが同一の活動化グループにある場合には、 プロシージャー・ポインター呼び出しのコストはほとんど静的プロシージャー呼び出しの コストと同じです。
プロシージャー呼び出しのどちらかのタイプを使用して次を呼び出すことができ ます。
静的プロシージャー呼び出しを使用して呼び出すことができるプロシージャーは 、プロシージャー・ポインターによっても呼び出すことができます。
静的プロシージャー呼び出しの使用例のリストについては、 自由形式呼び出しの例および CALL および CALLB の例を参照して ください。 プロシージャー・ポインターの使用例については 、「WebSphere Development Studio: ILE RPG 言語解説書」のプロシージャー・ポインターのデータ・タイプのセクションを参照してください。
プロシージャー呼び出しを行うためには、CALLP 命令または CALLB と PARM の 両方の命令を使用します。 プロシージャーが値を戻す場合には、式でプロトタイプ・プロシージャーを呼 び出すこともできます。CALLB および PARM 命令を使用する場合には、 コンパイラーは、実行時にエラーを引き起こす可能性のあるパラメーター上の タイプ検査を行えません。
(C) Copyright IBM Corporation 1992, 2006. All Rights Reserved.