コンパイラ

コンパイラの字句解析の役割として正しいものはどれか。

  1. Aプログラムの文が、言語の文法に合っているかどうかを木の形で確かめる
  2. Bソースコードの文字の並びを、識別子や演算子などのトークンに分ける
  3. C変数の型が合っているかや、未定義の名前を使っていないかを調べる
答えと解説を見る

正解:B. ソースコードの文字の並びを、識別子や演算子などのトークンに分ける

字句解析はコンパイラの最初の段階で、例えば「count = count + 1;」を、識別子count、記号=、識別子count、記号+、数値1、記号; というトークンに分けます。空白やコメントもここで取り除かれます。トークンの規則は正規表現で書けるので、有限オートマトンで高速に処理できます。文法に合っているかを木の形で確かめるのは次の構文解析、型や名前を調べるのは意味解析の仕事です。

  • A. 文法を木の形で確かめるのは構文解析です。
  • B. 正しい。文字の並びをトークンに分ける段階です。
  • C. 型や名前を調べるのは意味解析です。
この分野を解く 分野ページへ

コンパイラのほかの問題

  1. コンパイラの構文解析で行うこととして正しいものはどれか。
  2. コンパイラの意味解析で見つかる誤りの例として最も適切なものはどれか。
  3. 抽象構文木(AST)の特徴として正しいものはどれか。
  4. コンパイラの内部で、ソース言語にもCPUにも依存しない中間表現(IR)を使う主な利点はどれか。
  5. 基本ブロックの説明として正しいものはどれか。