言語プロセッサとプログラム実行
プログラミング言語
プログラムは書いただけでは動かない!機械語への翻訳プロセスを理解しよう!
言語プロセッサとプログラム実行
簡単にいうと
プログラムは書いただけでは動かない!機械語への翻訳プロセスを理解しよう!
① インタプリタとコンパイラ
高水準言語で書かれたプログラム(ソースコード)をCPUが理解できる機械語に変換するソフトウェアを言語プロセッサと呼びます。変換方式により、大きくインタプリタとコンパイラに分かれます。
| 項目 | インタプリタ | コンパイラ |
|---|---|---|
| 翻訳方式 | ソースコードを1行(1命令)ずつ逐次的に翻訳しながら実行する | ソースコード全体を一括して機械語に翻訳してから実行する |
| 実行速度 | 遅い(毎回翻訳処理が入る) | 速い(翻訳済みの機械語を直接実行) |
| デバッグ | 容易(1行ずつ確認できるためエラー箇所を特定しやすい) | やや困難(一括翻訳のため、全体が正しくないとエラーの特定が難しい) |
| 翻訳結果 | 機械語ファイルを生成しない(実行のたびに翻訳) | 目的プログラム(オブジェクトプログラム)を生成する |
| 代表的な言語 | JavaScript、Python、Ruby、PHP | C、C++、FORTRAN、COBOL |
インタプリタは「同時通訳」、コンパイラは「書籍翻訳」に例えられます。同時通訳はリアルタイムで内容を伝えられますが、毎回通訳が必要です。書籍翻訳は時間がかかりますが、一度翻訳が完了すれば何度でも高速に読めます。
② プログラム実行の手順
コンパイラ方式でプログラムが実行されるまでの一連のプロセスを段階的に見ていきましょう。
ステップ1: ソースプログラム(原始プログラム)の作成
プログラマがC言語などの高水準言語で記述したテキストファイルがソースプログラム(原始プログラム)です。人間が読み書きできる形のプログラムです。
ステップ2: コンパイラによる翻訳
コンパイラがソースプログラム全体を解析し、機械語に変換した目的プログラム(オブジェクトプログラム)を生成します。この段階では、文法エラーや型の不整合があればエラーとして検出されます。
ステップ3: リンカによる結合
リンカ(連係編集プログラム / リンケージエディタ)が、目的プログラムと必要なライブラリ(他のプログラムが用意した汎用的な機能の集まり)を結合し、ロードモジュール(実行可能プログラム)を生成します。
ステップ4: ローダによる読み込みと実行
ローダがロードモジュールを主記憶装置(メインメモリ)に読み込み、CPUが実行を開始します。
この一連の流れをまとめると以下のようになります。
ソースプログラム → [コンパイラ] → 目的プログラム → [リンカ] → ロードモジュール → [ローダ] → 実行
③ 各ステップの用語まとめ
| 用語 | 別名 | 説明 |
|---|---|---|
| ソースプログラム | 原始プログラム | 高水準言語で記述された元のプログラム |
| コンパイラ | - | ソースプログラムを目的プログラムに一括翻訳するプロセッサ |
| 目的プログラム | オブジェクトプログラム | コンパイル後に生成される機械語(またはそれに近い形式)のプログラム |
| ライブラリ | - | よく使われる汎用機能をまとめたプログラム部品の集合 |
| リンカ | 連係編集プログラム | 目的プログラムとライブラリを結合してロードモジュールを生成する |
| ロードモジュール | 実行可能プログラム | リンク済みの最終的な実行ファイル |
| ローダ | - | ロードモジュールを主記憶装置に配置して実行準備を行う |
試験ではこれらの用語の順序と役割を入れ替えて出題されることが多いため、各ステップの名称と機能の対応を正確に覚えることが重要です。
具体例
プログラム実行手順を「料理の本を出版して提供する」プロセスに例えてみましょう。
ソースプログラム = 料理研究家が書いた「レシピ原稿」です。料理名・材料・手順が日本語(高水準言語)で書かれています。
コンパイラ = 「翻訳者」です。レシピ原稿を外国語(機械語)の料理マニュアルに全文翻訳します。このとき、「砂糖を-3g」のような間違いがあればエラーとして指摘します。
目的プログラム = 翻訳された「個別の料理マニュアル」です。メインディッシュのマニュアルだけでは料理は完成しません。
リンカ = 「編集者」です。メインディッシュ・副菜・デザートの各マニュアル(目的プログラム)と、基本的な調理テクニック集(ライブラリ)を1冊の本にまとめます。
ロードモジュール = 完成した「料理本」です。すぐに使える状態の最終成果物です。
ローダ = 「書棚から本を取り出してキッチンのカウンターに開く人」です。料理本を作業台(主記憶装置)に配置して、実際に調理(実行)を始められる状態にします。
試験のポイント
- ・要は「インタプリタ=1行ずつ(遅いがデバッグ容易)、コンパイラ=一括(速いが完成必要)
- ・実行手順:ソース→コンパイル→目的→リンク→ロード→実行」
- ・各ステップの用語(特にリンカ・ローダ・ロードモジュール)の役割を入れ替えた出題が多いので、順序と意味を正確に押さえる
独学で診断士合格を目指すなら
過去問演習・AI添削・テキストPDFまで
すべて揃ったプレミアムプランで合格を掴む!
予備校代の1/10以下で、独学の不安をまるごと解決
- 📝1次試験 過去問演習(全7科目・年度別)無制限プレミアム限定
- 🤖2次試験 AI添削(事例I〜IV・無制限)最適なフィードバックで実力アッププレミアム限定
- 📄科目別テキストPDFダウンロード。印刷して好きな使い方で学習できるプレミアム限定
- 🔖ブックマーク機能で苦手分野・何度も確認したい部分を管理プレミアム限定
- 📊学習記録・成績管理で自分の進捗を可視化プレミアム限定
プレミアムプラン
¥9,800(税込)
自動更新なし / 1年間有効
決済は Stripe(PCI-DSS準拠)で安全に処理されます。カード情報は当サービスに保存されません。