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