コンパイラ

コンパイラとインタプリタの違いとして正しいものはどれか。

  1. Aコンパイラは実行前に翻訳し、インタプリタは読みながら実行する
  2. Bコンパイラは実行しながら1行ずつ翻訳し、インタプリタは実行前にまとめて翻訳する
  3. Cコンパイラは数値計算だけ、インタプリタは文字の処理だけを扱う
答えと解説を見る

正解:A. コンパイラは実行前に翻訳し、インタプリタは読みながら実行する

コンパイラはプログラム全体を実行する前に機械語などに翻訳し、翻訳した結果を実行します。翻訳に時間がかかる代わりに、実行は速くなり、最適化にも時間をかけられます。インタプリタはプログラムを読みながら解釈して実行するので、すぐ試せる一方、実行は遅くなりがちです。実際にはバイトコードに翻訳してから解釈し、よく使う部分をJITコンパイルするなど、両者を組み合わせた方式も多く使われます。扱える処理の種類で分けるわけではありません。

  • A. 正しい。実行前に翻訳するか、読みながら実行するかの違いです。
  • B. 説明が逆になっています。
  • C. 扱える処理の種類で分けるわけではありません。
この分野を解く 分野ページへ

コンパイラのほかの問題

  1. JITコンパイルを使う実行環境の特徴として正しいものはどれか。
  2. LLVMの基本的な構成として正しいものはどれか。
  3. コンパイラの最適化のレベルを指定するオプションで、最適化をしない設定(-O0など)がよく使われる場面はどれか。
  4. プロファイルを使った最適化(PGO)の説明として正しいものはどれか。
  5. リンク時最適化(LTO)によって可能になる最適化として最も適切なものはどれか。