HOME»情報処理安全確保支援士令和6年秋期»午前Ⅰ 問7
情報処理安全確保支援士令和6年秋期 午前Ⅰ 問7
問7
手続型言語のコンパイラがコード生成までに行う処理のうち,最後に行う処理はどれか。
- 意味解析
- 構文解析
- 最適化
- 字句解析
- [出典]
- 応用情報技術者
令和6年秋期 問20と同題
分類
テクノロジ系 » ソフトウェア » 開発ツール
正解
ウ
解説
コンパイラは、高水準語で記述されたソースコードをコンピュータが理解できる機械語に一括変換する(=コンパイルする)ソフトウェアです。
コンパイルは、①字句解析、②構文解析、③意味解析、④最適化の4つの段階に分けて順に作業を行います。
コンパイルは、①字句解析、②構文解析、③意味解析、④最適化の4つの段階に分けて順に作業を行います。
- 字句解析
- プログラムを表現する文字列を、意味のある最小の構成要素(トークン)に分解するint a = 5 + 3;
↓
int(型)、a(変数)、=(代入演算子)、5(整数)、+(加算演算子)、3(整数)、;(セミコロン) - 構文解析
- 句解析で得られたトークンをもとに、言語の文法に基づいてプログラムを解析し、文法誤りがないかチェックする。構文木を使用してプログラムの構造を表現する
- 意味解析
- プログラムが意味的に正しいかを検証する。変数の宣言と使用とを対応付けたり、演算におけるデータ型の整合性を確認する
- 最適化
- コードの実行効率を向上させるために、不要な演算の省略、ループの展開、関数のインライン展開、レジスタ割付けなどの変換を行うint a = 2 * 5;
↓
int a = 10;