コンパイラ
コンパイラの字句解析の役割として正しいものはどれか。
- Aプログラムの文が、言語の文法に合っているかどうかを木の形で確かめる
- Bソースコードの文字の並びを、識別子や演算子などのトークンに分ける
- C変数の型が合っているかや、未定義の名前を使っていないかを調べる
答えと解説を見る
正解:B. ソースコードの文字の並びを、識別子や演算子などのトークンに分ける
字句解析はコンパイラの最初の段階で、例えば「count = count + 1;」を、識別子count、記号=、識別子count、記号+、数値1、記号; というトークンに分けます。空白やコメントもここで取り除かれます。トークンの規則は正規表現で書けるので、有限オートマトンで高速に処理できます。文法に合っているかを木の形で確かめるのは次の構文解析、型や名前を調べるのは意味解析の仕事です。
- A. 文法を木の形で確かめるのは構文解析です。
- B. 正しい。文字の並びをトークンに分ける段階です。
- C. 型や名前を調べるのは意味解析です。