コンパイラ・インタプリタ・アセンブラとは?こんぱいら・いんたぷりた・あせんぶら
コンパイラ・インタプリタ・アセンブラとは、ソースコードを実行できる形へ変換する処理系の分類。コンパイラは全体を事前に一括翻訳し、字句解析→構文解析→意味解析→最適化→コード生成の過程を経て目的プログラムを作る。インタプリタは1行ずつ解釈しながら逐次実行する。アセンブラは機械語と1対1に近いアセンブリ言語を機械語へ変換する。
最終更新:2026-10-06
この語が出る過去問を解く →背景
機械語を直接書いていた時代は、命令がCPUに固有で可読性も移植性もなく、機種が変われば書き直しだった。人間の書く記法と機械の実行形式の間に翻訳を挟むことで、同じソースを別環境向けに作り直せるようになり、最適化を処理系側の仕事に移せた。事前に一括翻訳して速く動かすか、その場で解釈して手軽に動かすかという二択は、いまも中間コード方式やJITコンパイルという折衷を生み続けている。
具体例
C言語をGCCでビルドすると実行前に機械語へ翻訳され、Pythonは処理系が中間コードに変換しながら逐次実行する。JavaはjavacでバイトコードにしたうえでJVMが実行時にJITコンパイルする折衷型で、「コンパイラ方式かインタプリタ方式か」の二分では説明しきれない。
試験での引っ掛け
コンパイラ方式は実行前に文法エラーを一括検出できるが修正のたび再翻訳が要り、インタプリタ方式はすぐ動くがエラーが実行時に出るというトレードオフが問われる。ただしこれは言語そのものの属性ではなく処理系の実装方式であり、同じ言語にコンパイラ実装とインタプリタ実装の両方がある点を取り違えない。
関連用語
出た過去問
問題文で直接問われたものと、解説の中で触れられたものが含まれます。
出典:令和6年度 秋期 応用情報技術者試験 午前 問78(IPA)
著作権法で保護されるものはどれか。
正解:コンパイラのプログラム
要点:著作権法はプログラムを守るが言語・規約・解法は対象外
著作権法はプログラムを著作物として保護するが、同法はプログラム言語、規約(プロトコル・インタフェース)、解法(アルゴリズム)には保護が及ばないと明記している。したがって具体的に記述されたコンパイラのプログラムは保護対象だが、他の3つは対象外である。
出典:平成28年度 秋期 応用情報技術者試験 午前 問11(IPA)解説で登場
出典:平成30年度 春期 応用情報技術者試験 午前 問9(IPA)解説で登場
プロセッサの高速化技法の一つとして、同時に実行可能な複数の動作を、コンパイルの段階でまとめて一つの複合命令とし、高速化を図る方式はどれか。
正解:VLIW
要点:VLIWはコンパイラが並列動作を1命令にまとめる
VLIW(Very Long Instruction Word)は、同時に実行できる複数の演算をコンパイラがあらかじめ判別し、1つの長い命令語にまとめて並列実行させる方式である。命令の並列性の解析を実行時のハードウェアではなくコンパイル時に行う点が特徴で、その分ハードウェアを簡素にできる。
出典:平成30年度 春期 応用情報技術者試験 午前 問47(IPA)解説で登場
組込みシステムの“クロス開発”の説明として、適切なものはどれか。
正解:ソフトウェアを実行する機器とはCPUのアーキテクチャが異なる機器で開発を行うこと
要点:クロス開発は実行環境と異なるCPUの機器で開発する
クロス開発とは、開発に使う機器と、そのソフトウェアを実際に動かす機器のCPUアーキテクチャが異なる開発形態である。組込みシステムでは対象機器の資源が乏しく開発環境を載せられないため、PC上のクロスコンパイラで実行コードを生成し、対象機器へ転送して動かす。
出典:令和4年度 春期 応用情報技術者試験 午前 問8(IPA)解説で登場
プロセッサの高速化技法の一つとして、同時に実行可能な複数の動作を、コンパイルの段階でまとめて一つの複合命令とし、高速化を図る方式はどれか。
正解:VLIW
要点:VLIWはコンパイラが並列実行分をまとめて長い命令にする
VLIW(Very Long Instruction Word)は、同時に実行できる複数の操作をコンパイラが解析してまとめ、1つの長い命令語として発行する方式である。実行時ではなくコンパイル時に並列化の判断を済ませるため、ハードウェアの制御回路を単純にできる。命令の並びを実行時に解析するスーパスカラとは対照的な考え方である。
出典・参考
公式シラバスの2 コンピュータシステム > 1. オペレーティングシステム > (2) OS の機能と構成に掲載されている用語です。
解説は資格暗記が独自に作成しています。過去問の出典は各問題に記載のとおりです。