令和6年秋期試験問題 午前Ⅰ 問7

手続型言語のコンパイラがコード生成までに行う処理のうち,最後に行う処理はどれか。

  • 意味解析
  • 構文解析
  • 最適化
  • 字句解析
正解 問題へ
分野 :テクノロジ系
中分類:ソフトウェア
小分類:開発ツール
解説
コンパイラは、高水準語で記述されたソースコードをコンピュータが理解できる機械語に一括変換する(=コンパイルする)ソフトウェアです。

コンパイルは、①字句解析、②構文解析、③意味解析、④最適化の4つの段階に分けて順に作業を行います。
字句解析
プログラムを表現する文字列を、意味のある最小の構成要素(トークン)に分解する
int a = 5 + 3;

int(型)、a(変数)、=(代入演算子)、5(整数)、+(加算演算子)、3(整数)、;(セミコロン)
構文解析
句解析で得られたトークンをもとに、言語の文法に基づいてプログラムを解析し、文法誤りがないかチェックする。構文木を使用してプログラムの構造を表現する
意味解析
プログラムが意味的に正しいかを検証する。変数の宣言と使用とを対応付けたり、演算におけるデータ型の整合性を確認する
最適化
コードの実行効率を向上させるために、不要な演算の省略、ループの展開、関数のインライン展開、レジスタ割付けなどの変換を行う
int a = 2 * 5;

int a = 10;
4つのうちコンパイラが最後に行う処理は「最適化」なので「ウ」が正解です。

Pagetop