最終更新日:2026年10月3日
fe fe-technology software
まず結論
リンキング(linking)とは、プログラムを構成するモジュールやライブラリを結び付けて、利用できるようにする処理です。
FE試験では、まず「いつ結合するか」で切り分けます。
実行前に結合
→ 静的リンキング
実行時に必要なものを結合
→ 動的リンキング
ただし、「実行時」という言葉だけで判断するのは危険です。
何をしているか → いつ行うかの順に確認すると、オーバーレイやインタプリタとの混同を防げます。
直感的な説明
静的リンキングは、必要な部品を出発前に全部組み込んでおくイメージです。
動的リンキングは、実行を始めてから必要になった部品を結び付けて使うイメージです。
【静的リンキング】
プログラム ─┐
モジュール ─┼→ 事前に結合 → 実行
ライブラリ ─┘
【動的リンキング】
プログラム → 実行開始
↓
モジュールが必要
↓
実行時に結合 → 利用
英語でも、static は「固定された」、dynamic は「動的な」というイメージを持つと覚えやすくなります。
定義・仕組み
静的リンキング
静的リンキング(static linking)は、プログラムの実行前に、必要なオブジェクトモジュールやライブラリを結合する方式です。
オブジェクトモジュール
+
ライブラリ
↓
リンク
↓
実行可能なプログラム
↓
実行
ポイントは、結合してから実行することです。
動的リンキング
動的リンキング(dynamic linking)は、プログラムの実行時に、必要なモジュールやライブラリを結合して利用する方式です。
プログラム実行
↓
必要なモジュールがある
↓
実行時に結合
↓
利用
試験では細かな実装方式よりも、まず「実行前か、実行時か」を押さえておけば判断しやすくなります。
| 方式 | 結合するタイミング | キーワード |
|---|---|---|
| 静的リンキング | 実行前 | あらかじめ結合 |
| 動的リンキング | 実行時 | 実行中に結合 |
科目Aでどう出る?
科目Aでは、説明文から処理方式を選ぶ問題が考えられます。
このとき、最初に「実行時」という言葉だけを見るのではなく、次の順番で読みます。
① 何をしている?
↓
モジュールを「結合」している
② いつしている?
↓
プログラムの「実行時」
③ 判断
↓
動的リンキング
反対に、
モジュールを結合
+
実行前
→ 静的リンキング
です。
「結合」という動作を見つけてから、タイミングを見るのが判断のコツです。
どんな場面で使う?
プログラムでは、一つの巨大なソースコードだけですべてを作るのではなく、機能をモジュールやライブラリに分けて利用することがあります。
そのとき、それらをプログラムとどのタイミングで結び付けるかによって、静的リンキングと動的リンキングに分けて考えられます。
動的リンキングでは、複数のプログラムから共通のライブラリを利用する仕組みなどで使われます。
ここではFE対策として、具体的なOSごとのファイル形式を暗記するより、
リンク=結合、static=実行前、dynamic=実行時
という関係を優先して押さえましょう。
よくある誤解・混同
実行時に行う処理なら、すべて動的リンキング
違います。
「実行時」はタイミングを示しているだけです。何をしているかも確認する必要があります。
モジュールを結合
→ リンキング
ソースコードを解釈して実行
→ インタプリタ
必要なプログラム部分を主記憶へ入れ替える
→ オーバーレイ
オーバーレイと動的リンキングは同じ
違います。
オーバーレイは、主記憶に入りきらないプログラムを複数の部分に分け、必要な部分を主記憶へ読み込んで実行する方式です。
一方、動的リンキングの判断ポイントは、実行時にモジュールを結合することです。
オーバーレイ
→ 必要な部分を「入れ替える」
動的リンキング
→ 必要なモジュールを「結合する」
インタプリタと動的リンキングは同じ
違います。
インタプリタは、ソースコードを逐次解釈しながら実行する言語処理方式です。
動的リンキングは、モジュールやライブラリの結合方法についての用語です。
まとめ(試験直前用)
- リンキングは、モジュールやライブラリを結合する処理
- 静的リンキング=実行前に結合
- 動的リンキング=実行時に結合
- 「実行時」だけで判断せず、まず何をしているかを見る
- オーバーレイは「入れ替える」、インタプリタは「解釈する」、リンキングは「結合する」