コンパイラ

プログラムの誤りのうち、コンパイルの時点で見つけることができるものはどれか。

  1. A利用者が入力したファイルが存在しないことによる誤り
  2. B実行中に使えるメモリが足りなくなる誤り
  3. C括弧の対応が取れていない文法の誤り
答えと解説を見る

正解:C. 括弧の対応が取れていない文法の誤り

括弧の対応やセミコロンの抜けなどの文法の誤りは、構文解析の段階で必ず見つかり、コンパイルが止まります。型の不一致なども意味解析で見つかります。一方、利用者が指定したファイルが存在するか、実行中にメモリが足りるかは、実行するときの環境や入力によって変わるので、コンパイルの時点では分かりません。こうした実行時の誤りには、プログラムの中で戻り値を確かめるなどの対策が必要です。

  • A. ファイルの有無は実行するときの環境で決まります。
  • B. メモリが足りるかは実行するときに決まります。
  • C. 正しい。文法の誤りは構文解析で見つかります。
この分野を解く 分野ページへ

コンパイラのほかの問題

  1. 静的な型をもつ言語で、コンパイラが型検査を行う主な利点はどれか。
  2. 字句解析でトークンを見分ける規則を表すのによく使われるものはどれか。
  3. 多くのプログラミング言語の文法を表すのに使われ、構文解析の基礎になる文法の種類はどれか。
  4. 式 2 + 3 * 4 の抽象構文木の形として正しいものはどれか。
  5. 中間表現の一つである三番地コードの特徴として正しいものはどれか。