平成24年度 春期20テクノロジ系

基本情報 平成24年度 春期 問20:テクノロジ系に関する問題

プログラムを構成するモジュールの結合を, プログラムの実行時に行う方式はどれ か。

  • aインタプリタ
  • bオーバレイ
  • c静的リンキング
  • d動的リンキング正答
正答:D動的リンキング

AI解説(初心者・標準・上級)

理解度に合わせて3レベルの解説を無料で読めます。

初心者向けまずはここから。やさしく要点を解説

答えは d「動的リンキング」 です。

プログラムは複数の部品(モジュール)でできていて、それらを「つなぎ合わせる」のがリンキング。動的リンキングは、実行時に必要になった瞬間につなぎ合わせる方法。Windowsの DLLファイル(.dll)がこれです。

👉 覚え方:「動的=実行時/静的=コンパイル時」。

ほかの選択肢:a インタプリタ=1行ずつ翻訳実行/b オーバレイ=メモリに必要部分だけ載せる古い技法/c 静的リンキング=事前に結合。

標準試験対策の基準レベル

なぜこれが正解か

正解は d。動的リンキング(Dynamic Linking)は、プログラムを構成する複数モジュール(共有ライブラリ等)の結合をプログラム実行時に行う方式。実行ファイルには参照情報のみ持ち、実際のコードは別ファイル(Windowsの.dll、Linuxの.so)として保持する。

各選択肢の解説

  • a インタプリタ:ソースコードを1行ずつ解釈実行する方式。コンパイラと対比される。
  • b オーバレイ:メモリが少ない時代に、必要なモジュールだけメモリにロード・置換する技法。
  • c 静的リンキング:コンパイル後のリンク時に全モジュールを結合し1つの実行ファイルにする方式。

覚え方・ひっかけ注意

静的リンキング=結合済みで配布(大きい)/動的リンキング=実行時に結合(小さく共有可)。動的リンキングの利点はメモリ節約・モジュール更新の容易さ・複数プログラム間の共有。欠点はDLL Hell(バージョン不整合)。

上級誤答論破・背景理論まで深掘り

理論的背景

リンキングはコンパイル→アセンブル→リンクの最終段階で、複数のオブジェクトファイル間のシンボル参照を解決する。静的リンキングは全コードを実行ファイルに埋め込み、動的リンキングは共有ライブラリ(Windows DLL、Linux SO、macOS dylib)を実行時にロードする。動的リンキングには①ロード時動的リンキング(プログラム起動時に解決)と②実行時動的リンキング(必要になった時点で解決、dlopen/LoadLibrary等のAPI使用)がある。

実務での使われ方

OSのシステムコール、標準ライブラリ(libc)、GUIフレームワーク、データベースクライアントライブラリ等は動的リンキングが標準。プラグインアーキテクチャ(Photoshop、Eclipse、IDEのアドオン等)は実行時動的リンキングで実現される。Microsoft .NET の Assembly、Java の Class Loader(Reflection・Class.forNameで動的ロード可)も動的リンキングの応用。コンテナ時代では静的バイナリ(Go言語等)が運用上扱いやすいため見直されている。

試験での位置づけ

基本情報・応用情報のソフトウェア(言語処理プログラム・OS)分野で頻出。リンキング方式の比較、再配置可能(リロケータブル)コード、位置独立(PIC: Position Independent Code)、ABI(Application Binary Interface)、DLL Hell対策が出題される。応用情報・ESS試験ではセキュリティ観点(DLL Injection、Side Loading)まで深掘りされる。

選択肢の発展補足

オーバレイは仮想記憶機構が未発達だった時代の手法で、現代のページング・仮想メモリ(VMM)がその役割を果たす。インタプリタとコンパイラの中間にJIT(Just-In-Time)コンパイル方式(Java HotSpot、.NET CLR、JavaScript V8)があり、実行時に動的にコンパイル+最適化する。AOT(Ahead-of-Time)コンパイルはJITに対し起動時間と予測可能性を重視する手法(Java GraalVM Native Image、.NET Native)。コンテナ化(Docker・Kubernetes)でアプリケーションパッケージング方式が変わり、Distroless・Static Binary・Single Binary化の動きが進む一方、共有ライブラリの利点(メモリ共有・脆弱性パッチ即適用)も依然重要。

出典・引用について

出典:IPA(情報処理推進機構)公式 基本情報技術者試験 平成24年度 春期20/ 公的機関配布資料につき出典明記の上引用。解説は合格ナビによる独自AI解説です。

テクノロジ系の他の過去問

1
テクノロジ系
2
テクノロジ系
3
テクノロジ系
4
テクノロジ系
5
テクノロジ系

あなたの弱点を診断して、合格までの最短ルートを

この分野を連続演習し、AIがあなたの弱点を分析。合格ナビなら基本情報の過去問を解きながら学べます。