サンプル問題 科目A 問16

問題

インタプリタの説明として,適切なものはどれか。 
 
ア  原始プログラムを,解釈しながら実行するプログラムである。 
イ  原始プログラムを,推論しながら翻訳するプログラムである。 
ウ  原始プログラムを,目的プログラムに翻訳するプログラムである。 
エ  実行可能なプログラムを,主記憶装置にロードするプログラムである。 

出典:基本情報技術者試験 サンプル問題

各選択肢は何か

ア  原始プログラムを,解釈しながら実行するプログラムである。

これがインタプリタです。「実行する」というのが重要です。「解釈しながら」なので、狭義のインタプリタだと思いました。

イ  原始プログラムを,推論しながら翻訳するプログラムである。

これは何か分かりません。「推論しながら」というのが重要だと思いましたが、こういう処理系で推論すると言えば型推論しか思いつかず、処理系を特定するところまでいきませんでした。

この問題の解説記事を検索してみると、トランスレータと書いているサイトがありました。私の感覚ではトランスレータは上位の言葉で、例えばあるものが鉛筆かボールペンか考えている時に、それは筆記用具だ、といった感じがあります。個人の感想ですが。

ということで、この選択肢が何を意味するのかは宿題ですが、インタプリタではないのは確かです。

ウ  原始プログラムを,目的プログラムに翻訳するプログラムである。

これはコンパイラですね。

エ  実行可能なプログラムを,主記憶装置にロードするプログラムである。 

これは、ローダ(プログラムローダ)です。「実行可能なプログラムを主記憶装置にロードする」のが役割です。

答え

ということで、選択肢イが何か分かりませんが、これがインタプリタではないのは確かなので、答えはアです。