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

当サイトは、情報処理技術者試験に合格するためのWebサイトです。
ITパスポート試験,基本情報技術者,応用情報技術者,高度試験の過去問題と解答及び詳細な解説を掲載しています。
  1. トップページ
  2. 応用情報技術者
  3. 平成25年度秋季問題一覧
  4. 平成25年度秋季問題20-解答・解説-分析

平成25年度秋季問題

問題20

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

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

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

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

解答:ウ

<解説>

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

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

キーワード