← 用語集一覧へ戻る

インタープリター

Interpreter
プログラムのソースコードを1行ずつ読み取って即座に実行するソフトウェア。
インタープリター (Interpreter)

概要(サマリー)

インタープリター(Interpreter)とは、プログラムのソースコードを上から順に1行ずつ読み取り、その場で解釈して実行するソフトウェアである。翻訳者・通訳者という意味の言葉から来ており、「その場で通訳しながら実行する」イメージが近い。

PythonJavaScriptは、インタープリター的に実行される代表例としてよく説明される。コードを書いてすぐに動作確認できる手軽さが特徴で、AIコーディングで作るスクリプトの多くもインタープリターや実行エンジンによって動かされる。

詳細解説

インタープリターとは何か

プログラムをコンピュータに実行させるには、人間が書いたコードをコンピュータが理解できる形式に変換する必要がある。この変換と実行を「その場でリアルタイムに行う」のがインタープリターだ。

コードを1行読んで解釈・実行し、次の1行へ進む、という流れを最後まで繰り返す。

コンパイラーとの違い

インタープリターとよく比べられるのがコンパイラーだ。

インタープリター コンパイラー
変換タイミング 実行時に逐次変換 実行前に全体を変換
実行速度 やや遅い(変換しながら実行) 速い(変換済みのコードを実行)
エラー検出 実行時に見つかるエラーも多い 実行前に全体チェックできる範囲が広い
開発の手軽さ 書いてすぐ試せる コンパイル手順が必要
代表例 Python・JavaScript・Ruby C・C++・Go・Rust

実際には純粋なインタープリター型より「コンパイルと実行を組み合わせた方式」の言語が多く、この区分は目安として理解するとよい。

Pythonはどう実行されるか

Pythonをコマンドで実行するとき、実際にはソースコードがバイトコードに変換され、それをPython仮想マシン(CPython等)が実行している。インポートされたモジュールのバイトコードは、必要に応じて__pycache__内の.pycファイルとしてキャッシュされる。厳密には「純粋なインタープリター型」ではなく、中間コード方式を組み合わせている。

# Pythonのスクリプト例
print("こんにちは!")
name = "太郎"
print(f"名前は {name} です")

python hello.py というコマンドを実行するだけで、上から順に即座に動作する。ビルドのような事前変換手順は不要だ。

JavaScriptとインタープリター

ブラウザで動くJavaScriptも、インタープリター的に扱われる代表例だ。現代のブラウザはJIT(Just-in-Time)コンパイラーを使って実行直前に機械語へ変換するため、処理速度がかなり向上している。Node.jsも同様の仕組みで動いている。

インタープリターを使う場面

  • スクリプト言語(Python・Ruby・PHPなど)の実行
  • ブラウザでのJavaScript実行
  • REPL(対話型実行環境)でのコードテスト
  • AIが生成したコードをすぐに試すとき

AIコーディングとの関係

AIコーディングで生成されるコードはPythonやJavaScriptが多く、インタープリターで即座に実行できる。「コードを書いてすぐ試せる」インタープリターの特性が、AIとの反復的な開発と相性がよい。AIにコードを依頼する際は「Python 3.12で動くコード」「ブラウザのJavaScriptで動かしたい」といった実行環境を伝えると、インタープリターのバージョンや環境に合ったコードを生成してもらえる。

よくある勘違い

インタープリター型は遅い?

かつてはコンパイラー型に比べて大幅に遅いとされていたが、現代のJavaScriptエンジンや、PyPyなど一部のPython実装ではJITコンパイラーや最適化により大幅に改善されている。用途によっては「十分に速い」ケースが多く、速度よりも開発のしやすさが優先されることが多い。

Pythonはコンパイルしない?

Pythonも内部ではバイトコードにコンパイルされるが、ユーザーが意識することなく自動で行われる。「コンパイルが不要」というのは「手動でコンパイル手順を踏まなくてよい」という意味であって、「まったく変換が行われない」わけではない。

コンパイラー型言語の方が常に優れている?

速度の面ではコンパイラー型が有利な場面も多いが、開発速度・柔軟性・プロトタイピングのしやすさではインタープリター型が優れている。AIコーディングではPythonのような「すぐ試せる」インタープリター型言語が特に相性よく使われている。

まとめ

  • インタープリターはソースコードを1行ずつ読み取って即座に実行するソフトウェア
  • PythonやJavaScriptはインタープリター的に実行される代表例で、書いてすぐ試せる手軽さが特徴
  • コンパイラーとの最大の違いは「実行前に全体変換するか・実行時に逐次変換するか」
  • 現代のJavaScriptエンジンなどはJITコンパイラーで高速化されており、「インタープリター型は必ず遅い」というイメージは古い
  • AIコーディングでの反復開発と相性がよく、プロトタイピングに活躍する

情報ソース

より詳しくAIに聞いてみよう

  • インタープリターとコンパイラーの違いを、初心者でもわかるたとえ話で説明してください。
  • Pythonがバイトコードとインタープリターをどのように組み合わせているか教えてください。
  • ブラウザでJavaScriptが実行される仕組みをV8エンジンを例に説明してください。
  • AIコーディングでインタープリター型言語(Python・JavaScript等)を使う利点を教えてください。
  • AIにコードを書いてもらうとき、実行環境(Pythonバージョン等)を指定する重要性を教えてください。