応用情報技術者試験ナビ ロゴ 応用情報技術者試験ナビ
次回試験日:2025年4月20日(あと1日)

応用情報技術者試験 令和6年秋 午前問20 解説付き過去問

問題

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

正解

解説

この問題は、手続型言語のコンパイラがコード生成までに行う処理の流れについて問うものです。

コンパイラの主な処理手順
手続型言語のコンパイラは、次のような手順でプログラムを解析し、コードを生成します。

  1. 字句解析
    ソースコードをトークンという単位に分割し、それぞれの意味を解析しやすい形に変換します。例えば、予約語や識別子、演算子などを識別します。
  2. 構文解析
    字句解析の結果得られたトークンを基に、文法が正しいかどうかをチェックし、構文木を生成します。この構文木は、プログラムの構造を表現します。
  3. 意味解析
    構文木を基に、プログラムの意味が正しいかを確認します。例えば、変数の型が一致しているか、未定義の変数が使用されていないかなどをチェックします。
  4. 最適化
    生成されるコードの効率を向上させるために不要な命令を削除したり、計算を簡略化したりします。この処理は、プログラムの実行速度やメモリ使用量の改善を目的としています。
  5. コード生成
    最適化された中間表現を基に、ターゲットマシン(CPU)で実行可能なコードを生成します。

最後に行われる処理について
コード生成までに行われる処理のうち、最後に行われるのは「最適化」です。最適化は、実行効率を高めるためにコードを改良するプロセスであり、コード生成の直前に実行されます。

以上の理由から、正解は最適化です。