応用情報技術者令和6年秋期 午前問20

問20

手続型言語のコンパイラがコード生成までに行う処理のうち,最後に行う処理はどれか。
  • 意味解析
  • 構文解析
  • 最適化
  • 字句解析
  • [出題歴]
  • 基本情報技術者 H30秋期 問19

分類

テクノロジ系 » ソフトウェア » 開発ツール

正解

解説

コンパイラは、高水準語で記述されたソースコードをコンピュータが理解できる機械語に一括変換する(=コンパイルする)ソフトウェアです。

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

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

int a = 10;
4つのうちコンパイラが最後に行う処理は「最適化」なので「ウ」が正解です。
© 2010-2024 応用情報技術者試験ドットコム All Rights Reserved.

Pagetop