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