平成25年度 秋期 応用情報技術者試験 午前 問20
テクノロジ/ソフトウェアコンパイラにおける処理を字句解析,構文解析,意味解析,最適化の四つのフェーズに分けたとき,意味解析のフェーズで行う処理はどれか。
出典:平成25年度 秋期 応用情報技術者試験 午前 問20
- ア言語の文法に基づいてプログラムを解析し,文法誤りがないかチェックする。
- イプログラムを表現する文字の列を,意味のある最小の構成要素の列に変換する。
- ウ変数の宣言と使用とを対応付けたり,演算におけるデータ型の整合性をチェックする。
- エレジスタの有効利用を目的としたレジスタ割付けや,不要な演算を省略するためのプログラム変換を行う。
正解:ウ
解説
意味解析フェーズでは,構文解析で得られた構造をもとに,変数の宣言と使用の対応付けや,演算に用いられるデータ型の整合性チェックなど,プログラムの意味的な正しさを検証します。
選択肢ごとの解説
- ア誤り。文法に基づいて誤りをチェックするのは構文解析フェーズの処理です。
- イ誤り。文字列を意味のある最小単位の列に変換するのは字句解析フェーズの処理です。
- ウ正しい。変数の宣言・使用の対応付けや型の整合性チェックは意味解析フェーズで行われます。
- エ誤り。レジスタ割付けや不要演算の省略は最適化フェーズの処理です。