サブプロシージャーおよびサブルーチン

サブプロシージャーはサブルーチンと類似していますが、サブプロシージャーで は以下のように強化されている点が異なります。
  • パラメーターを値によってもサブプロシージャーに渡すことができます。

    このことは、サブプロシージャーとの連絡に使用されるパラメーターは変更可能 である必要はないことを意味します。 プログラムの場合のように参照によって渡されるパラメーターは、変更可能でな ければなりません。したがって、その信頼性が低下することもあります。

  • サブプロシージャーとの間で受け渡しされるパラメーターの整合性は、コンパ イル時に検査されます。 このことは、より負担が大きくなる可能性がある実行時エラーを少なくするのに 役立ちます。
  • サブプロシージャーは、式の中で組み込み関数と同じように使用することがで きます。

    このようにして使用した場合には、呼び出し元に値が戻されます。 これによって、基本的 には、式の中に必要な任意の演算子をユーザーが定義する ことができます。

  • サブプロシージャーの中に定義された名前は、そのサブプロシージャーの外 部では見ることができません。

    このことは、プロシージャーが他のプロシージャーと共用されている項目を 不用意に変更してしまう機会が少なくなることを意味します。 さらに、プロシージャーの呼び出し元では、サブプロシージャーの中で使用されて いる各項目について多くを知っている必要はありません。

  • サブプロシージャーがエクスポートされた場合には、それをモジュールの外 部から呼び出すことができます。
  • サブプロシージャーは反復して呼び出すことができます。
  • プロシージャーは、異なる仕様タイプ、すなわち、プロシージャー仕様書に 定義されます。 このタイプが異なることで、別の単位を取り扱っていることをた だちに認識するのに役立ちます。
サブプロシージャーによって提供される改良点が必要でない場合は、サブプロシージャーを呼び出すよりも EXSR 命令のほうが高速であるため、サブルーチンを使用したほうがよい場合もあります。