プログラム構造によって生じる性質である、再入可能・再使用可能・再帰可能・再配置可能について解説して行きます。
再入可能
再入可能(reentrant)とは、複数のプログラムを並行して実行されるマルチタスクにおいて、多重に起動されても狂いなく正常に処理ができる性質のことをいいます。
プログラム内で使用する変数を非共有に設計し、複数の呼び出し元のプログラムが互いに干渉しあわないようにすることで実現可能です。
再使用可能
再使用可能(reusable)とは、主記憶装置に組み込まれたプログラムが繰り返し使用可能である性質のことをいいます。
プログラムは補助記憶装置から主記憶装置にロードされて実行されますが、再使用可能ではないプログラムは実行の度に再ロードが必要になるところ、再使用可能プログラムは処理後再ロードすることなく、繰り返し使用することが出来ます。
再使用可能プログラムの内、実行中に他のプログラムから呼び出し可能なものを再入可能プログラムといいます。
反対に、実行中は他のプログラムから呼び出しが出来ないものを、シリアルユーザブル(遂次再使用性)といいます。
再帰可能
再帰可能(recursive)とは、処理中に自分自身を呼び出せる性質のことをいいます。
自分自身でも複数タスクになるので、再帰可能プログラムは必然的に再入可能となります。
また、再帰可能な呼び出しのことを「再帰呼び出し」、再帰呼び出しが含まれる関数のことを「再帰関数」といいます。
再帰関数は自分自身を呼び出す関係上、設計が甘いと無限ループに陥ってしまう可能性があるので注意が必要です。
再配置可能
再配置可能(relocatable)とは、メモリのどこに配置しても実行できる性質のことをいいます。
絶対アドレスを使用しているプログラムだと、配置できるアドレスに制約が出来てしまうので、注意が必要です。
まとめ
再入可能・再使用可能・再帰可能・再配置可能はそれぞれが独立したものではなく、再帰可能は再入可能であったりと、それぞれの性質含むことが多いです。
このプログラムはこれ、という考え方ではなく、このプログラムはこの性質を持っていると考えないと意味がぐちゃぐちゃになってしまうので注意しましょう。
コメント