令和6年度 秋期 プロジェクトマネージャ試験 データベーススペシャリスト試験 エンベデッドシステムスペシャリスト試験 システム監査技術者試験 情報処理安全確保支援士試験 午前 I 問題 【共通】 問7
テクノロジOS・ソフトウェア
手続型言語のコンパイラがコード生成までに行う処理のうち,最後に行うものはどれか。
解答・解説
正解: ウ. 最適化
コンパイラがソースコードから目的プログラムを生成するまでの一連の処理は、一般に以下の順序で行われます。
- 字句解析:ソースコードを読み込み、意味を持つ最小単位の文字列(トークン)に分割する。
- 構文解析:トークンの並びが、そのプログラミング言語の文法規則に合っているかを解析し、構文木を作成する。
- 意味解析:構文木をもとに、変数の型や演算の整合性など、意味的な正しさをチェックする。
- 最適化:実行時間やメモリ使用量を減らすため、プログラムの構造を変えずにコードを効率的なものに変換する。
- コード生成:最適化された中間コードから、ターゲットとなる機械語の目的プログラムを生成する。
したがって、コード生成の直前、すなわち「最後に行う処理」は 最適化 となります。
各選択肢の解説
- ア(意味解析): 構文解析の次に行われる処理であり、最後ではありません。
- イ(構文解析): 字句解析の次に行われる処理であり、最後ではありません。
- ウ(最適化): 正解。コード生成の直前に行われます。
- エ(字句解析): コンパイラが最初に行う処理です。