最終更新日:2026年8月12日
fe fe-technology programming
まず結論
言語プロセッサとは、プログラムや条件を受け取り、変換・解釈・生成などの処理を行うソフトウェアです。
基本情報技術者試験では、用語名を丸暗記するより、「何を入力して、何をするのか」で切り分けると判断しやすくなります。
アセンブリ言語 → 機械語
→ アセンブラ
高水準言語 → まとめて変換
→ コンパイラ
高水準言語 → 逐次解釈して実行
→ インタプリタ
条件・パラメータ → プログラムを生成
→ ジェネレータ
ある処理系用のプログラム → 別の処理系用のプログラム
→ トランスレータ
別のコンピュータ環境の動作を再現
→ エミュレータ
試験中は、変換なのか、実行なのか、生成なのかを最初に確認するのがポイントです。
直感的な説明
言語プロセッサは、「プログラムを別の形にしたり、実行したり、作ったりする道具」と考えると分かりやすいです。
例えば、文章を扱う道具にたとえると次のようになります。
別の言葉へ翻訳する
→ 変換系
文章を読みながら意味を実行する
→ インタプリタ
条件を指定して文章そのものを作る
→ ジェネレータ
特に混同しやすいのが、変換するものと生成するものです。
すでにあるプログラムを別の形へ変える
→ 変換
条件を与えて新しいプログラムを作る
→ 生成
この違いが分かると、ジェネレータをかなり見抜きやすくなります。
定義・仕組み
代表的な言語プロセッサや関連ソフトウェアを整理すると、次のようになります。
| 用語 | 主な入力 | 主な処理・結果 |
|---|---|---|
| アセンブラ | アセンブリ言語 | 機械語へ変換する |
| コンパイラ | 高水準言語 | まとめて目的プログラムなどへ変換する |
| インタプリタ | 高水準言語 | 逐次解釈しながら実行する |
| ジェネレータ | 条件・パラメータ | 条件に応じたプログラムを生成する |
| トランスレータ | ある処理系用の原始プログラム | 別の処理系用の原始プログラムへ変換する |
| エミュレータ | 別環境向けのプログラムや動作 | 別のコンピュータ環境を模擬して実行する |
アセンブラ
アセンブラは、アセンブリ言語で書かれたソースコードを機械語へ変換します。
アセンブリ言語
↓
Assembler
↓
機械語
「ある処理系用のプログラムを別の処理系用へ変換する」という説明ではありません。
コンパイラ
コンパイラは、高水準言語で書かれたプログラムを、目的プログラムなどへまとめて変換します。
高水準言語
↓
Compiler
↓
目的プログラム
関連する実行までの流れは、リンカ(Linker)とは?コンパイラ・ローダ・デバッガとの違いでも整理しています。
インタプリタ
インタプリタは、ソースコードを逐次解釈しながら実行します。
ソースコード
↓
解釈
↓
実行
↓
次の部分を解釈
問題文に「解釈しながら実行する」とあれば、インタプリタを考えます。
ジェネレータ
ジェネレータは、入力・処理・出力などの条件やパラメータを指定することで、目的に応じたプログラムを自動生成します。
条件・パラメータ
↓
Generator
↓
プログラム
ここで重要なのは、既存のプログラムを別形式へ変換するのではなく、条件からプログラムそのものを作る点です。
トランスレータ
トランスレータは、ある処理系用に書かれた原始プログラムを、別の処理系用の原始プログラムへ変換します。
処理系A用の原始プログラム
↓
Translator
↓
処理系B用の原始プログラム
「別の処理系用へ変換」という表現が強い手掛かりになります。
エミュレータ
エミュレータは、別のコンピュータや処理系の動作環境を模擬するものです。
本来は環境Aで動くプログラム
↓
環境B上の Emulator
↓
環境Aの動作を再現して実行
変換するのではなく、別環境の動きを再現して実行するのがポイントです。
公式の出題範囲やシラバスは、IPA:基本情報技術者試験 から確認できます。
科目Aでどう出る?
科目Aでは、説明文から該当する言語プロセッサを選ばせる形で出題されます。
まず、次の順番で確認します。
1. 何を入力している?
2. 何をしている?
3. 何が出てくる?
選択肢を切るときは、次のキーワードが有効です。
| 問題文の表現 | 考える用語 |
|---|---|
| アセンブリ言語を機械語へ | アセンブラ |
| 高水準言語をまとめて変換 | コンパイラ |
| 解釈しながら実行 | インタプリタ |
| パラメータを指定してプログラムを生成 | ジェネレータ |
| ある処理系用から別の処理系用へ変換 | トランスレータ |
| 別のコンピュータ環境を模擬 | エミュレータ |
特に、次の2つは混同しやすいので注意します。
既存プログラム → 別のプログラムへ変換
→ トランスレータなど
条件・パラメータ → 新しいプログラムを作る
→ ジェネレータ
また、
高水準言語を解釈しながら実行する
ならインタプリタです。
「実行」という言葉があっても、別環境を模擬して動かすのであればエミュレータなので、何を実行しているのかまで見ます。
どんな場面で使う?
言語プロセッサは、プログラムを作成して実行できる形にしたり、開発を効率化したりするときに使われます。
プログラムを変換する
アセンブリ言語 → 機械語
高水準言語 → 目的プログラム
処理系A用 → 処理系B用
のように、すでにあるプログラムを別の形へ変換します。
プログラムをその場で実行する
インタプリタでは、ソースコードを解釈しながら処理を進めます。
定型的なプログラムを自動生成する
同じ構造のプログラムを何度も作る場合、条件やパラメータを指定して自動生成すると、作業を効率化できます。
入力項目
処理条件
出力形式
↓
ジェネレータ
↓
目的に応じたプログラム
よくある誤解・混同
| 混同しやすい点 | 正しい理解 |
|---|---|
| アセンブラは別処理系向けへ変換する | アセンブラはアセンブリ言語を機械語へ変換する |
| インタプリタは別コンピュータを模擬する | インタプリタはソースコードを逐次解釈・実行する |
| ジェネレータは既存プログラムを翻訳する | 条件やパラメータからプログラムを生成する |
| トランスレータは解釈しながら実行する | ある処理系用から別の処理系用へ変換する |
| エミュレータはソースコードを変換する | 別のコンピュータ環境の動作を模擬する |
ジェネレータとトランスレータの違い
ここは特に重要です。
元になるプログラムがある
↓
別の処理系用へ変換
→ トランスレータ
元になるプログラムではなく、条件を与える
↓
プログラムを作る
→ ジェネレータ
英語の感覚も役立ちます。
generate = 作り出す
translate = 翻訳する
interpret = 解釈する
emulate = 模倣する
用語名だけでなく、英単語の意味と役割を結び付けると覚えやすくなります。
まとめ(試験直前用)
- アセンブラは アセンブリ言語 → 機械語
- コンパイラは 高水準言語をまとめて変換
- インタプリタは 逐次解釈しながら実行
- ジェネレータは 条件・パラメータ → プログラム生成
- トランスレータは ある処理系用 → 別の処理系用へ変換
- エミュレータは 別のコンピュータ環境を模擬
- 迷ったら 入力 → 処理 → 出力 の順に見る