インタプリタの役割は実行と翻訳でどう見分ける?
基本情報技術者試験 平成31年度春期 午前 問19 / ソフトウェア › 開発ツール
過去問にチャレンジ
インタプリタの説明として,適切なものはどれか。
- ア
原始プログラムを,解釈しながら実行するプログラムである。
- イ
原始プログラムを,推論しながら翻訳するプログラムである。
- ウ
原始プログラムを,目的プログラムに翻訳するプログラムである。
- エ
実行可能なプログラムを,主記憶装置にロードするプログラムである。
会話形式の解説
講師この問題は、プログラムを解釈して実行する働きと、翻訳や配置をする働きを区別するのがポイントです。
受験者「解釈」と「翻訳」が似て見えます。どこで判断すればよいですか。
講師原始プログラムをどう扱うかを確かめます。解釈しながら実行する説明がインタプリタなので、正解はアです。
受験者では、目的プログラムに翻訳する説明は、実行する説明とは違うのですね。
講師はい。それはコンパイラの役割です。翻訳して目的プログラムを作るので、インタプリタの説明には当たりません。
受験者「推論しながら翻訳する」という説明も、翻訳という言葉があるので迷いました。
講師そこも実行しているかを見ます。その説明は原始プログラムを解釈しながら実行する働きを表していないため、不適切です。
受験者実行可能なプログラムを主記憶装置にロードする説明は、何の役割ですか。
講師ローダの役割です。実行可能なプログラムを主記憶に配置する処理で、原始プログラムを解釈する処理ではありません。
受験者解釈しながら実行するのがインタプリタ、目的プログラムへ翻訳するのがコンパイラ、主記憶に配置するのがローダですね。
講師その区別で判断できます。似た用語が並んだら、各説明が実行・翻訳・配置のどれを述べているか確かめましょう。
まとめ
インタプリタは原始プログラムを解釈しながら実行するため、正解はアです。原始プログラムを目的プログラムへ翻訳するのはコンパイラの役割です。実行可能なプログラムを主記憶に配置するのはローダの役割です。
解答・解説
正解はアです
この問題のテーマ
インタプリタの役割を、コンパイラやローダの役割と区別できるかを問う問題です。
解き方の考え方
各選択肢が原始プログラムを実行するのか、別のプログラムへ翻訳するのか、主記憶に配置するのかを見分けます。インタプリタに当てはまるのは、原始プログラムを解釈しながら実行する説明です。したがって、正解はアです。
選択肢ごとの解説
- ○ア 原始プログラムを,解釈しながら実行するプログラムである。原始プログラムを解釈しながら実行するという記述は、インタプリタの働きに当てはまります。問題で問われている役割をそのまま表しているため、適切です。
- ×イ 原始プログラムを,推論しながら翻訳するプログラムである。「推論しながら翻訳する」という記述は、インタプリタの役割を表していません。インタプリタを見分ける際の要点は、原始プログラムを解釈しながら実行することです。
- ×ウ 原始プログラムを,目的プログラムに翻訳するプログラムである。原始プログラムを目的プログラムへ翻訳するのは、コンパイラの役割です。翻訳して目的プログラムを作るという記述なので、インタプリタの説明としては不適切です。
- ×エ 実行可能なプログラムを,主記憶装置にロードするプログラムである。実行可能なプログラムを主記憶装置にロードするのは、ローダの役割です。プログラムを実行できるよう主記憶に配置する処理であり、原始プログラムを解釈する処理ではありません。
POINT
- インタプリタは原始プログラムを解釈しながら実行します。
- コンパイラは原始プログラムを目的プログラムへ翻訳します。
- ローダは実行可能なプログラムを主記憶に配置します。
