メインコンテンツへ
ソフトウェアコンパイラとインタプリタ

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

ア.コンパイラ方式は実行のたびに翻訳するため、インタプリタ方式より実行速度が遅い
イ.インタプリタ方式はソースコードを一括で機械語に変換してから実行するため、コンパイラ方式より高速である
ウ.コンパイラ方式は実行前にソースコード全体を解析するため、インタプリタ方式より早期にエラーを検出できる正解
エ.インタプリタ方式は機械語に変換せず実行するため、コンパイラ方式より移植性が低い

解説

コンパイラは「本を丸ごと翻訳してから読む」方式、インタプリタは「一文ずつその場で翻訳しながら読む」方式。丸ごと翻訳では誤字(エラー)も最初の段階で全部チェックできる。一文ずつだとその行に来て初めてエラーが分かる。

なぜ ウ が正解か

コンパイラ方式では、実行前にソースコード全体を字句解析→構文解析→意味解析の過程で精査する。そのため型エラーや未定義変数などを実行前(コンパイル時)に検出できる。インタプリタ方式は一行ずつ実行するため、エラーはその行が実行される時点で初めて検出される(実行時エラー)。

なぜ ア は間違いか

逆。コンパイラ方式は事前に機械語へ変換済みのため実行時の翻訳コストがなく高速。インタプリタ方式は実行のたびに翻訳するため低速になりがち。速度関係を逆に記憶した誤り。

なぜ イ は間違いか

コンパイラとインタプリタの説明が逆。コンパイラが一括変換し、インタプリタが逐次実行する。

なぜ エ は間違いか

インタプリタ方式はソースコードのまま配布でき、その OS に対応したインタプリタがあれば動作するため移植性が高い。コンパイラ方式はプラットフォームごとにコンパイルが必要なことが多く移植性が低い場合がある。移植性の評価が逆になっている誤り。

出典: AI生成問題(学習用)