令和6年度 秋期 プロジェクトマネージャ試験 データベーススペシャリスト試験 エンベデッドシステムスペシャリスト試験 システム監査技術者試験 情報処理安全確保支援士試験 午前 I 問題 【共通】 問7

テクノロジOS・ソフトウェア

この問題は2024(R6)秋 高度試験共通 午前Iに出題されたものです。出題時点の法令・制度に基づく内容のため、現行の内容と一致しない場合があります。

本ページの問題文・選択肢は、原本の体裁を Web 表示用に正規化しています(改行・記号・数式・図表参照の調整)。設問の趣旨および正解に影響する変更は加えていません。

手続型言語のコンパイラがコード生成までに行う処理のうち,最後に行うものはどれか。

解答・解説を読む

正解: 選択肢

コンパイラがソースコードから目的プログラムを生成するまでの一連の処理は、一般に以下の順序で行われます。

  1. 字句解析:ソースコードを読み込み、意味を持つ最小単位の文字列(トークン)に分割する。
  2. 構文解析:トークンの並びが、そのプログラミング言語の文法規則に合っているかを解析し、構文木を作成する。
  3. 意味解析:構文木をもとに、変数の型や演算の整合性など、意味的な正しさをチェックする。
  4. 最適化:実行時間やメモリ使用量を減らすため、プログラムの構造を変えずにコードを効率的なものに変換する。
  5. コード生成:最適化された中間コードから、ターゲットとなる機械語の目的プログラムを生成する。

したがって、コード生成の直前、すなわち「最後に行う処理」は 最適化 となります。

各選択肢の解説

  • ア(意味解析): 構文解析の次に行われる処理であり、最後ではありません。
  • イ(構文解析): 字句解析の次に行われる処理であり、最後ではありません。
  • ウ(最適化): 正解。コード生成の直前に行われます。
  • エ(字句解析): コンパイラが最初に行う処理です。