平成21年度 春期 午前 問22
ソフトウェア
ローダの入出力の組合せ
図はプログラムを翻訳して実行するまでの流れを示したものである。コンパイラ,リンカ,ローダの入出力の組合せとして,適切なものはどれか。
〔図〕プログラムを翻訳して実行するまでの流れ
┌───┐
│ b │
└─┬─┘
↓
原始プログラム ──→ コンパイラ ──→ [a]──→ リンカ ──→ [c]──→ ローダ
〔選択肢の表〕
| a | b | c | |
|---|---|---|---|
| ア | 目的プログラム | ライブラリモジュール | ロードモジュール |
| イ | ライブラリモジュール | ロードモジュール | 目的プログラム |
| ウ | ロードモジュール | 目的プログラム | ライブラリモジュール |
| エ | ロードモジュール | ライブラリモジュール | 目的プログラム |
- アa=目的プログラム / b=ライブラリモジュール / c=ロードモジュール
- イa=ライブラリモジュール / b=ロードモジュール / c=目的プログラム
- ウa=ロードモジュール / b=目的プログラム / c=ライブラリモジュール
- エa=ロードモジュール / b=ライブラリモジュール / c=目的プログラム
答えと解説を見る
✓ これが正解アa=目的プログラム / b=ライブラリモジュール / c=ロードモジュール
解説
前の出口が次の入口になる鎖として読みます。
コンパイラ・リンカ・ローダの三つは、前の道具の出口がそのまま次の道具の入口になるように並んでいます。人が書いた原文を機械語へ翻訳する役目のコンパイラが最初に来て、その結果を受け取ってひとまとまりの実行できる形に組み立てるリンカが続き、最後にそれを主記憶へ積み込むローダが来ます。図では二つの空欄が流れの線の上に並び、もう一つの空欄だけが横から入る矢印の先に置かれています。見分けるときの軸は、その欄が流れの上の受け渡し物なのか、それとも外から持ち込まれる部品なのかを読むことです。組合せを選ぶ問いなので、いちばん確からしい一欄を先に決めて候補を削ると速く絞れます。
ほかの選択肢はなぜ違うのか
- イa=ライブラリモジュール / b=ロード…:翻訳した直後の受け渡し物を、外から持ち込まれる部品の名前で埋めています。最後の受け渡し物も翻訳直後のものの名前になっており、流れの順序が前後しています。
- ウa=ロードモジュール / b=目的プログ…:主記憶へ積む直前の完成した形を、翻訳した直後の位置に置いています。外から入る部品の欄には翻訳結果の名前が入っており、三つとも役割の場所が入れ替わっています。
- エa=ロードモジュール / b=ライブラリ…:翻訳した直後の位置に、組み立てを終えた完成形の名前を置いています。最後の受け渡し物が翻訳直後のものになるので、後ろへ行くほど未完成になってしまいます。
出典:平成21年度 春期 基本情報技術者試験 午前 問22(改変:原典の図表をテキストに書き起こした)
この解説に誤りを見つけたら教えてください。直して、直した記録を残します。誤りを報告する(メールが開きます)