コンパイラとは?こんぱいら
コンパイラとは、原始プログラム(ソースプログラム)を、機械語などの目的プログラムへ一括して翻訳するソフトウェア。字句解析→構文解析→意味解析→最適化→コード生成の順に処理する。翻訳を実行前に済ませるため、1行ずつ解釈しながら動かすインタプリタより実行が速い。
最終更新:2026-10-07
この語が出る過去問を解く →背景
機械語を直接書く負担から解放するために高水準言語が生まれたが、機械の側はそれをそのまま実行できない。人が読みやすい形と機械が実行できる形の隔たりを、決まった手順で機械的に埋めるのがコンパイラである。段階を分けてあるのは、各段で扱う問題(文字の切れ目・文法・意味)が別物だからで、この区切り方はデータ形式の解析などにも広く使われる。
具体例
字句解析では文字の並びをトークン(識別子・演算子・定数)へ切り分け、構文解析では文法規則に照らして構文木を組む。意味解析では整数の変数へ文字列を代入していないかといった型の整合を検査し、最適化ではループ内で値の変わらない計算を外へ出すといった書き換えを行う。
試験での引っ掛け
処理の順序を問う問題が定番。意味解析は構文解析の後(構文木が無ければ意味を判定できない)、最適化はコード生成の前に置かれる。字句解析と構文解析の役割の入れ替えにも注意する。
関連用語
出た過去問
問題文で直接問われたものと、解説の中で触れられたものが含まれます。
出典:令和6年度 秋期 高度試験 午前Ⅰ 問7(IPA)
手続型言語のコンパイラがコード生成までに行う処理のうち、最後に行うものはどれか。
正解:最適化
要点:コンパイラは字句→構文→意味→最適化→コード生成の順に処理する
コンパイラは字句解析、構文解析、意味解析の順に原始プログラムを解釈し、中間表現(原始プログラムと機械語の間の内部形式)に対して最適化を施したうえでコード生成に進む。したがってコード生成の直前に行われるのは最適化である。
出典:令和7年度 秋期 高度試験 午前Ⅰ 問4(IPA)解説で登場
プロセッサの高速化技法の一つとして、同時に実行可能な複数の動作を、コンパイルの段階でまとめて一つの複合命令とし、高速化を図る方式はどれか。
正解:VLIW
要点:VLIWはコンパイラが並列動作を長い1命令にまとめる
VLIW(Very Long Instruction Word)は、並列実行できる複数の演算をコンパイル時にまとめ、非常に長い1命令として構成する方式である。命令の並列性の解析をコンパイラが担うため、実行時にハードウェアで依存関係を解析する必要がなく、回路を単純にしたまま高速化できる。
出典・参考
公式シラバスの2 コンピュータシステム > 1. オペレーティングシステム > (2) OS の機能と構成に掲載されている用語です。
解説は資格暗記が独自に作成しています。過去問の出典は各問題に記載のとおりです。