令和3年度 秋期 応用情報技術者試験 午前 問題 問6

プログラム特性に関する記述のうち,適切なものはどれか。

解答・解説

正解: イ. 再使用可能プログラムは実行の始めに変数を初期化する,又は変数を初期状態に戻した後にプログラムを終了する。

プログラムの性質(再配置可能、再使用可能、再入可能、再帰的)に関する問題です。
各用語の定義を正確に理解しておく必要があります。

  • 再配置可能(Relocatable):主記憶上のどの番地にロードされても、正常に実行できる性質。
  • 再使用可能(Reusable):一度実行を終えた後、主記憶上にロードされたプログラムを再ロードすることなく、再度実行できる性質。
  • 再入可能(Reentrant):複数のタスクから同時に呼び出されても、それぞれに対して正常に実行できる性質。プログラムのコード部分(手続き部分)を変更不可(リードオンリー)とし、データ領域をタスクごとに個別に割り当てることで実現されます。再入可能であれば再使用可能でもあります。
  • 再帰的(Recursive):プログラムの実行中に自分自身を呼び出すことができる性質。呼び出しごとの局所変数や引数、戻り先アドレスなどはスタックに格納されます。再帰的プログラムは再入可能である必要があります。

各選択肢の解説

  • ア:誤り。再帰的プログラムは呼び出されるたびに局所変数のための領域をスタック上に新しく確保するため、全ての呼び出しでデータを「共用」するわけではありません。
  • イ:正解。再使用可能プログラムは、再度実行する際に正しい状態から始められるように、実行の始めに変数を初期化するか、または実行の終わりに変数を初期状態に戻す必要があります。
  • ウ:誤り。再入可能プログラムは、コード領域とデータ領域を分離し、コード領域のみを各タスクで共用します。データ領域はタスクごとに個別に割り当てられるため、共用はしません。
  • エ:誤り。再配置可能なプログラムは、主記憶上の「定まった領域」ではなく、任意の領域(どこに配置されても)で実行できるプログラムのことです。

Spineチーム