必ず受かる情報処理技術者試験

問題20

ポケットスタディ 基本情報午後・要点整理―即効!7つの知識 (情報処理技術者試験)

コンパイラにおける処理を字句解析、構文解析、意味解析、最適化の四つのフェーズに分けたとき、意味解析のフェーズで行う処理はどれか。

言語の文法に基づいてプログラムを解析し、文法誤りがないかチェックする。
プログラムを表現する文字の列を、意味のある最小の構成要素の列に変換する。
変数の宣言と使用とを対応付けたり、演算におけるデータ型の整合性をチェックする。
レジスタの有効利用を目的としたレジスタ割付けや、不要な演算を省略するためのプログラム変換を行う。

解答・解説を見る

解答:ウ

コンパイラは次のフェーズによってオブジェクトプログラムを生成する。

  1. 字句解析:定数や識別子,演算子,予約語などの構成要素(トークン)に分解する。
  2. 構文解析:トークンのリストをプログラミング言語の仕様に基づき文法的に正しいのかチェックする
  3. 意味解析: 定数や関数の宣言と使用時の対応,型や引数のチェックをする。
  4. 最適化:中間コードを変形して、効率のよいプログ ラムに変換する。
× 構文解析のフェーズで行う。
× 字句解析のフェーズで行う。
意味解析のフェーズで行う。
× 最適化のフェーズで行う。
前の問題 次の問題

Copyrithg naruha