令和6年度 秋期 応用情報技術者試験 午前 問20
テクノロジOS・ソフトウェア
この問題は2024(R6)秋 応用情報技術者 午前に出題されたものです。出題時点の法令・制度に基づく内容のため、現行の内容と一致しない場合があります。
本ページの問題文・選択肢は、原本の体裁を Web 表示用に正規化しています(改行・記号・数式・図表参照の調整)。設問の趣旨および正解に影響する変更は加えていません。
手続型言語のコンパイラがコード生成までに行う処理のうち,最後に行うものはどれか。
解答・解説を読む
正解: 選択肢ウ
手続型言語のコンパイラにおける処理は、一般的に以下の順序で行われます。
- 字句解析: ソースコードを意味のある最小単位(トークン)に分割します。
- 構文解析: トークンの並びがプログラミング言語の文法規則に従っているかを確認し、構文木を生成します。
- 意味解析: 構文木をもとに、変数の型や演算の整合性など、意味的に正しいかを確認します。
- 最適化: 実行速度の向上やメモリ使用量の削減などを目的として、プログラムをより効率的なコードに変換します。
- コード生成: 目的となる機械語やアセンブリ言語などのオブジェクトコードを生成します。
したがって、コード生成の直前(最後)に行われる処理は 最適化 となります。
各選択肢の解説
- ア 意味解析: 構文解析の後、最適化の前に行われます。型の整合性などをチェックします。
- イ 構文解析: 字句解析の後、意味解析の前に行われます。文法的な構造を解析します。
- ウ 最適化: 正解です。意味解析の後、コード生成の直前に行われます。
- エ 字句解析: コンパイル処理の最初に行われます。ソースコードをトークンに分割します。