コンパイラ

コンパイラの構文解析で行うこととして正しいものはどれか。

  1. A文字の並びから空白やコメントを取り除き、単語に区切る
  2. Bよく実行される部分を見つけ、実行中に機械語に変換する
  3. Cトークンの並びを文法に照らし、プログラムの構造を木の形に組み立てる
答えと解説を見る

正解:C. トークンの並びを文法に照らし、プログラムの構造を木の形に組み立てる

構文解析は、字句解析で得たトークンの並びが言語の文法に合っているかを調べ、if文の条件と本体、式の中の演算の組み合わせなどの構造を木の形(構文木)に組み立てます。セミコロンの書き忘れや括弧の対応の誤りといった文法のエラーはこの段階で見つかります。空白を取り除いて単語に区切るのは字句解析、実行中に機械語に変換するのはJITコンパイルです。

  • A. 単語に区切るのは字句解析です。
  • B. 実行中の変換はJITコンパイルです。
  • C. 正しい。文法に照らして構造を木に組み立てます。
この分野を解く 分野ページへ

コンパイラのほかの問題

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