この概念が出た関連問題

この試験の対策ガイド

情報処理安全確保支援士試験 対策ガイド

合格率・勉強法・参考書の選び方をまとめています

見る →
答えと解説を見る(先に解くのがおすすめ)

正解は ウ

解説

コンパイラの処理フェーズは一般的に次の順序で行われます:①字句解析(ソースをトークン列に分解)→②構文解析(トークン列を構文木に変換)→③意味解析(型チェック・意味的整合性確認)→④中間コード生成→⑤最適化(中間コードの効率化)→⑥コード生成(機械語・アセンブリ生成)。コード生成の「直前に行う処理」は最適化です。選択肢cの「最適化」が正解です。

なぜ他の選択肢は違うのか

選択肢 ア
意味解析は字句解析・構文解析の後に行われますが、最適化やコード生成の前です。コード生成の直前ではありません。
選択肢 イ
構文解析は字句解析の後、意味解析の前に行われます。コード生成の直前ではありません。
選択肢 エ
字句解析はコンパイルの最初のフェーズです。コード生成の直前に行われるものではありません。

解くときのポイント

コンパイラの処理順序:字句解析→構文解析→意味解析→(中間コード生成)→最適化→コード生成。「コード生成までに行う処理のうち最後」=最適化。この順序は試験頻出なので「字→構→意→最→コ」と暗記。