[0163] 再帰的,再入可能,再使用可能,再配置可能

平成12年度秋期 (旧)第2情報処理技術者試験より
処理が終了していないプログラムが、別のプログラムから再度呼び出されることがある。このプログラムが正しく実行されるために備えるべき性質はどれか。
再帰的(リカーシブ)
再使用可能(リユーザブル)
再入可能(リエントラント)
再配置可能(リロケータブル)

正解

解説

 まずは、それぞれの用語の説明をしましょう。

■ 再帰的(リカーシブ)

自プログラムから、自身自身を呼び出して実行できるプログラムのことを、再帰的(リカーシブ)プログラムといいます。再帰的に呼び出すには、呼び出す際にプログラムの実行状態やデータをスタックへ保存(プッシュ)し、呼び出し元へ処理が戻ったときにスタックからデータを読み出す(プル)仕組みが必要になります。



■ 再入可能(リエントラント)

あるプログラムが呼び出したプログラムを、他のプログラムがさらに呼び出しを行い、同時に実行できるプログラムを、再入可能(リエントラント)プログラムといいます。同時実行を可能にするためには、再入可能プログラム側で、呼び出し元のプログラム毎に別々の変数を確保しなければなりません。



■ 再使用可能(リユーザブル)

一度プログラムを実行した後、補助記憶装置から主記憶装置にロードし直さずに、再び実行を繰り返すことができるプログラムのことを、再使用可能(リユーザブル)プログラムといいます。同時に複数のプログラムからの呼び出し、実行が可能な場合は、再入可能プログラムといえます。不可能な場合は、逐次再使用可能プログラムといいます。一般的に、再使用可能プログラムと呼ぶときは、逐次使用可能プログラムを指す場合が多いようです。



■ 再配置可能(リロケータブル)

補助記憶装置から主記憶装置へロードする際に、アドレス空間上のどこに配置しても実行できるプログラムを、再配置可能(リロケータブル)プログラムといいます。例えば、プログラム中でベースアドレスからのオフセットのみによって、すべてのメモリアクセスを行っているプログラムは再配置可能となります。



 問題では、「処理が終了していないプログラムが、別のプログラムから再度呼び出されるプログラム」なので、再使用可能か再入可能です。再使用可能といった場合、逐次再使用可能を指す場合もあるので、選択する語句としては、再入可能の方が妥当でしょう。

 よって、ウが正解となります。
※ 解説の内容は執筆時点のものであり,含まれている情報の正確性,妥当性について保証するものではありません。ご注意ください・・・

関連する(かもしれない)問題