IPA過去問ドリル

平成30年度 春期 応用情報技術者試験 午前 問8

テクノロジ/アルゴリズム

再帰的な処理を実現するためには,再帰的に呼び出したときのレジスタ及びメモリの内容を保存しておく必要がある。そのための記憶管理方式はどれか。

出典:平成30年度 春期 応用情報技術者試験 午前 問8

正解:ウ

解説

再帰呼出しでは,呼び出すたびにその時点のレジスタやローカル変数の内容を退避し,戻ってきたときに最後に退避した内容から順に復元する必要があります。この「後入れ先出し」の性質はLIFO(スタック)による記憶管理で実現されます。

選択肢ごとの解説

  • 誤り。FIFO(先入れ先出し)は,キューなどで用いられる方式で,再帰呼出しの退避・復元の順序とは逆になります。
  • 誤り。LFU(Least Frequently Used)は,使用頻度が最も低いものを置き換えるキャッシュやページ置換えのアルゴリズムです。
  • 正しい。再帰呼出しのレジスタやメモリ内容は,呼び出された順とは逆の順序で復元する必要があるため,LIFO(スタック)による管理が適しています。
  • 誤り。LRU(Least Recently Used)は,最も長く使われていないものを置き換えるページ置換えアルゴリズムです。
応用情報技術者の過去問を演習モードで解く