SkillStack
テクノロジ系7 / 30問

高度情報処理技術者試験・情報処理安全確保支援士試験 令和6年度 秋期 午前I 問7

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

選択肢を押すと答え合わせができます。

正解と解説を見る

【正解】ウ

手続型言語の一般的なコンパイル処理は、字句解析、構文解析、意味解析、最適化、コード生成という順序で進みます。最適化では、解析結果から作られた中間コードなどを対象として、計算結果を変えずに命令数を減らしたり、実行速度を高めたりします。その後、最適化された内容を基に目的機械の命令を生成するため、選択肢の中でコード生成の直前、すなわち最後に行われる処理はウです。

アの意味解析は誤りです。これは、変数や関数が宣言されているか、演算対象のデータ型が適合しているかなど、構文だけでは判断できない意味上の整合性を確認する処理です。最適化より前に行います。

イの構文解析は誤りです。これは、字句解析で得たトークン列が言語の文法に従っているかを調べ、構文木などを作る処理です。意味解析より前に行います。

エの字句解析は誤りです。これは、ソースコードの文字列を読み取り、予約語、識別子、定数、演算子などのトークンに分割する処理であり、通常は最初に行います。

【ポイント】 ・基本的な順序は「字句解析→構文解析→意味解析→最適化→コード生成」です。 ・字句は単語、構文は文法、意味は型や宣言の整合性を調べる段階と整理すると覚えやすいです。

出典:令和6年度 秋期 高度情報処理技術者試験・情報処理安全確保支援士試験 午前I 問7
※ 解説は SkillStack 編集部が作成したものです。Web 表示のため、図表の配置や表記を一部改めています。

この回の30問を、アプリで通しで解く

  • 本番と同じ問題数・制限時間で通し演習(模試モード)
  • 間違えた問題は自動で「復習すべき問題」に回る
  • 解説で分からない点はAIに質問できる
SkillStackで無料で始める