コンパイラ

字句解析でトークンを見分ける規則を表すのによく使われるものはどれか。

  1. A浮動小数点の丸めの規則
  2. B正規表現と、それを処理する有限オートマトン
  3. Cキャッシュの置き換えの規則
答えと解説を見る

正解:B. 正規表現と、それを処理する有限オートマトン

識別子は「英字で始まり英数字が続く」、数値は「数字が1つ以上続く」のように、トークンの種類は正規表現で簡潔に書けます。正規表現は有限オートマトン(状態の数が有限の機械)に変換でき、文字を1つ読むごとに状態を移していくだけで、入力の長さに比例する時間でトークンを切り出せます。そのため字句解析器は、正規表現から自動で生成する道具で作られることも多くあります。丸めやキャッシュの規則は字句解析とは関係ありません。

  • A. 丸めの規則は数値計算の話です。
  • B. 正しい。正規表現で規則を書き、有限オートマトンで処理します。
  • C. キャッシュの置き換えは記憶階層の話です。
この分野を解く 分野ページへ

コンパイラのほかの問題

  1. 多くのプログラミング言語の文法を表すのに使われ、構文解析の基礎になる文法の種類はどれか。
  2. 式 2 + 3 * 4 の抽象構文木の形として正しいものはどれか。
  3. 中間表現の一つである三番地コードの特徴として正しいものはどれか。
  4. レジスタ割り当ての準備として行う生存区間(ライブネス)の解析で求めるものはどれか。
  5. ある関数の中で、同時に生きている値の数が最も多いところで5個だった。干渉グラフがこの5個以外の制約を生まない単純な場合、すべての値をスピルなしでレジスタに置くには、レジスタが少なくとも何個必要か。