コンパイラにおける処理を字句解析、構文解析、意味解析、最適化の四つのフェーズに分けたとき、意味解析のフェーズで行う処理はどれか。
ア | 言語の文法に基づいてプログラムを解析し、文法誤りがないかチェックする。 |
イ | プログラムを表現する文字の列を、意味のある最小の構成要素の列に変換する。 |
ウ | 変数の宣言と使用とを対応付けたり、演算におけるデータ型の整合性をチェックする。 |
エ | レジスタの有効利用を目的としたレジスタ割付けや、不要な演算を省略するためのプログラム変換を行う。 |
コンパイラは次のフェーズによってオブジェクトプログラムを生成する。
ア | × | 構文解析のフェーズで行う。 |
イ | × | 字句解析のフェーズで行う。 |
ウ | ○ | 意味解析のフェーズで行う。 |
エ | × | 最適化のフェーズで行う。 |