この概念が出た関連問題

この試験の対策ガイド

基本情報技術者試験 対策ガイド

合格率・勉強法・参考書の選び方をまとめています

見る →
答えと解説を見る(先に解くのがおすすめ)

正解は ア

解説

言語処理プログラムの分類を問う基本問題です。インタプリタは、原始プログラム(ソースコード)を1文ずつ解釈(interpret)しながら、その場で実行するプログラムです。コンパイラのように事前に機械語へ一括翻訳した目的プログラムを作らないため、書いたらすぐ実行でき、対話的な開発やデバッグがしやすい反面、実行のたびに解釈処理が入るため実行速度は一般に遅くなります。アの「原始プログラムを、解釈しながら実行する」が正解です。PythonやJavaScriptなどがインタプリタ方式の代表例です。対比すべきはウのコンパイラで、原始プログラム全体を目的プログラム(機械語)に翻訳してから実行する方式です。さらにエのローダ(実行可能プログラムを主記憶に読み込む)、リンカ(複数の目的プログラムを結合する)も言語処理系まわりの頻出用語なので、「翻訳して後で実行=コンパイラ」「解釈しながら即実行=インタプリタ」という対比を軸にセットで整理しておきましょう。

なぜ他の選択肢は違うのか

選択肢 イ
「推論しながら翻訳する」という処理を行う一般的な言語処理プログラムの分類はありません。推論という言葉はPrologのような論理型言語の実行や、AIの推論エンジンを連想させますが、インタプリタの定義は「解釈しながら実行」であり、「翻訳」を行うわけでも「推論」を行うわけでもありません。もっともらしい言葉の組合せで作られたダミーの選択肢です。
選択肢 ウ
原始プログラムを目的プログラムに翻訳するのは、コンパイラの説明です。C言語やJavaのように、実行前にソースコード全体を機械語や中間コードへ一括変換する方式で、実行時には翻訳済みコードが走るため高速です。インタプリタとの違いは「翻訳と実行が分離しているか(コンパイラ)、解釈と実行が一体か(インタプリタ)」という点にあります。
選択肢 エ
実行可能なプログラムを主記憶装置にロードするのは、ローダの説明です。コンパイラやリンカが生成した実行可能ファイルを主記憶に配置し、実行開始できる状態にするOS寄りのプログラムです。ソースコードの解釈や翻訳には関与しません。コンパイラ→リンカ→ローダという実行までの流れの中での各プログラムの役割を整理しておきましょう。

解くときのポイント

インタプリタ=解釈しながら即実行、コンパイラ=目的プログラムへ一括翻訳、リンカ=結合、ローダ=主記憶へ読込み。「解釈」「翻訳」「結合」「ロード」のキーワードで即判別。