応用情報技術者試験 令和6年秋 午前問20 解説付き過去問
問題
手続型言語のコンパイラがコード生成までに行う処理のうち、最後に行う処理はどれか。
正解
解説
この問題は、手続型言語のコンパイラがコード生成までに行う処理の流れについて問うものです。
コンパイラの主な処理手順
手続型言語のコンパイラは、次のような手順でプログラムを解析し、コードを生成します。
- 字句解析
ソースコードをトークンという単位に分割し、それぞれの意味を解析しやすい形に変換します。例えば、予約語や識別子、演算子などを識別します。 - 構文解析
字句解析の結果得られたトークンを基に、文法が正しいかどうかをチェックし、構文木を生成します。この構文木は、プログラムの構造を表現します。 - 意味解析
構文木を基に、プログラムの意味が正しいかを確認します。例えば、変数の型が一致しているか、未定義の変数が使用されていないかなどをチェックします。 - 最適化
生成されるコードの効率を向上させるために不要な命令を削除したり、計算を簡略化したりします。この処理は、プログラムの実行速度やメモリ使用量の改善を目的としています。 - コード生成
最適化された中間表現を基に、ターゲットマシン(CPU)で実行可能なコードを生成します。
最後に行われる処理について
コード生成までに行われる処理のうち、最後に行われるのは「最適化」です。最適化は、実行効率を高めるためにコードを改良するプロセスであり、コード生成の直前に実行されます。
以上の理由から、正解は最適化です。