令和6年度 高度共通 午前I(PM試験) 問7
手続型言語のコンパイラがコード生成までに行う処理のうち、最後に行うものはどれか。
- ア 意味解析
- イ 構文解析
- ウ 最適化
- エ 字句解析
解答・解説を見る
正解:ウ
AI解説
コンパイラの処理は、字句解析(ソースをトークンに分解)→構文解析(文法構造の解析)→意味解析(型検査などの意味の検査)→最適化(実行効率の改善)→コード生成の順に進む。「コード生成までに行う処理のうち最後」なので、コード生成の直前に行う最適化が正解である。 ア: 意味解析は構文解析の後に行い、変数の型や宣言の整合性などを検査する処理である。最適化より前の工程である。 イ: 構文解析は字句解析で得たトークン列を文法規則に従って構文木にする処理で、前半の工程である。 ウ: 正しい。最適化は中間コードを変形して実行速度やサイズを改善する処理で、コード生成の直前に行われる。 エ: 字句解析はソースコードをトークン(字句)に分解する最初の処理である。 💡 「字句→構文→意味→最適化→コード生成」の順序は丸暗記が有効である。「じ・こう・い・さい・こ」のように頭文字で覚え、問われているのが「最初」か「最後」かを必ず確認する。
出典:令和6年度 秋期 プロジェクトマネージャ試験 午前I 問7 / 独立行政法人情報処理推進機構(IPA)
※Web掲載用に表記を一部変更しています。著作権はIPAに帰属します。
※Web掲載用に表記を一部変更しています。著作権はIPAに帰属します。