IPA過去問ドリル

平成21年度 春期 基本情報技術者試験 午前 問22

テクノロジ/ソフトウェア

図はプログラムを翻訳して実行するまでの流れを示したものである。原始プログラムはコンパイラによって a に変換され,a はリンカによって(ライブラリモジュール b を取り込みながら) c に変換され,c はローダによって実行される。コンパイラ,リンカ,ローダの入出力の組合せとして,適切なものはどれか。 流れ:原始プログラム → コンパイラ → a → リンカ(bを入力として使用) → c → ローダ (注:本サイトでは原問題の図を文字表記に変換しています)

出典:平成21年度 春期 基本情報技術者試験 午前 問22

正解:ア

解説

原始プログラムはまずコンパイラによって目的プログラム(機械語に翻訳されたモジュール)に変換されます。次にリンカが,その目的プログラムに必要なライブラリモジュールを組み込んでロードモジュールを生成します。最後にローダがロードモジュールを主記憶上に配置して実行します。

選択肢ごとの解説

  • 正しい。a:目的プログラム,b:ライブラリモジュール,c:ロードモジュールの組合せが,コンパイラ・リンカ・ローダの正しい入出力です。
  • 誤り。a,b,cの役割が本来の順序からずれており,コンパイラの出力が目的プログラムであることと矛盾します。
  • 誤り。aをロードモジュールとすると,リンカへの入力の時点で既に実行可能な形になってしまい,リンカの役割と矛盾します。
  • 誤り。aをロードモジュールとするのは誤りで,コンパイラの出力はまだリンク前の目的プログラムです。
基本情報技術者の過去問を演習モードで解く