ソフトウェア
基本情報技術者試験 科目A免除 修了試験 20171210 実施分 問19
コンパイラにおける処理を字句解析,構文解析,意味解析,最適化の四つのフェーズに分けたとき,意味解析のフェーズで行う処理はどれか。
- ア 言語の文法に基づいてプログラムを解析し,文法誤りがないかチェックする。
- イ プログラムを表現する文字の列を,意味のある最小の構成要素の列に変換する。
- ウ 変数の宣言と使用とを対応付けたり,演算におけるデータ型の整合性をチェックする。
- エ レジスタの有効利用を目的としたレジスタ割付けや,不要な演算を省略するためのプログラム変換を行う。
出典:基本情報技術者試験 科目A免除 修了試験 20171210 実施分 問19
答えと解説を見る
正解:ウ
覚える知識
コンパイラの処理順序
意味解析は、文法的に正しいプログラムに対して型の整合性や宣言との対応など意味上の誤りを検査する工程である。
この問題で必要なこと
意味解析では、変数の宣言と使用の対応や型の整合性を検査する。
ひっかけ
アは構文解析、イは字句解析、エは最適化の説明で、フェーズを取り違えさせる。
この知識の出題:本試験系 1 回・免除試験 4 回(公開問題での観測値)