FE SUBJECT A
基本情報技術者 科目Aの問題解説:コンパイラとインタプリタの違いとして適切なものはどれか。
問題
コンパイラとインタプリタの違いとして適切なものはどれか。
- ア コンパイラはソースコード全体を事前に機械語に変換し、インタプリタは1文ずつ解釈実行する(正解)
- イ コンパイラはスクリプト言語用、インタプリタはコンパイル言語用の処理系である
- ウ コンパイラは実行速度が遅く、インタプリタは速い
- エ コンパイラとインタプリタに本質的な違いはない
出典:オリジナル問題|参考範囲:試験要綱Ver.5.5 / FEシラバスVer.9.2 科目A範囲
正解と解説
正解:コンパイラはソースコード全体を事前に機械語に変換し、インタプリタは1文ずつ解釈実行する
コンパイラとインタプリタの違い:正解はアです。コンパイラは、ソースコード全体を事前に機械語や中間コードへ変換し、実行可能な形にする処理系です。一方、インタプリタはソースコードを実行時に1文ずつ解釈しながら処理する方式です。
それぞれの向き不向き:一般にコンパイル方式は実行時の速度に有利で、インタプリタ方式は実行しながら確認しやすく開発時の試行錯誤に向きます。ただし現実の言語処理系にはJITコンパイルなどの中間的な方式もあります。イ、ウ、エはいずれも両者の関係を単純化しすぎていると覚えておくと迷いません。
つまずきポイント:誤りの発見時点に注目すると違いが整理できます。コンパイラは実行前の変換時に構文エラーなどをまとめて検出できますが、インタプリタはその文を実行する時点まで進まないとエラーに気づけません。エラー検出のタイミングが両者で異なる点も覚えておきましょう。
他の選択肢はなぜ違う?
- イ対応関係が逆。スクリプト言語はインタプリタで動くことが多い。
- ウ速度の関係も逆。一般にコンパイル方式の方が実行は速い。
- エ変換のタイミングという本質的な違いがある。
この問題について
IPAが公開するシラバス・試験範囲・公開問題の出題形式を参考にした独自作成問題。公式問題・過去問題の転載ではありません。
公式試験問題、過去問題、公式サンプル問題、市販教材の問題文を転載したものではありません。