【いんたぷりた】

インタプリタ とは?

💡 書いたそばから動く、同時通訳スタイル
📌 このページのポイント
コンパイラ vs インタプリタ コンパイラ(一括翻訳) ソースコード 全行まとめて 実行ファイル .exe等 高速に実行 例: C, Go, Rust 事前に全部翻訳 → 速い インタプリタ(逐次翻訳) 1行目 → 翻訳 → 実行 2行目 → 翻訳 → 実行 3行目 → 翻訳 → 実行 ... 1行ずつ繰り返す 例: Python, Ruby, JavaScript 都度翻訳 → 柔軟だが遅め
インタプリタのイメージ
ひよこ ひよこ

インタプリタってなに?コンパイラとは違うの?

ペンギン先生 ペンギン先生

インタプリタはコードを1行ずつ読んでその場で実行する仕組みだよ。コンパイラが「本を丸ごと翻訳してから読む」なら、インタプリタは「同時通訳で聞きながら理解する」イメージだね

ひよこ ひよこ

PythonとかJavaScriptがそうなんだよね?でもなんでコンパイラより遅いのに使うの?

ペンギン先生 ペンギン先生

書いたコードをすぐ試せるのが最大のメリットだよ。コンパイラだとビルドして実行ファイルを作ってから動かすけど、インタプリタなら保存してすぐ実行できるから開発のテンポがいいんだね

ひよこ ひよこ

じゃあ速さが必要ないならインタプリタの方がいいってこと?

ペンギン先生 ペンギン先生

用途によるけど、Web開発やスクリプト作成みたいな分野ではインタプリタ方式が主流だね。速度が必要なところはC言語みたいなコンパイラ方式を使うことが多いよ

ひよこ ひよこ

でも最近はPythonも速くなってきてるって聞くけど?

ペンギン先生 ペンギン先生

いいところに気づいたね。実はベテランでも意外と知らない人がいるんだけど、最近のインタプリタ言語の多くはJIT(Just-In-Time)コンパイルという技術を使っていて、よく実行される部分を裏でこっそりコンパイルして高速化してるんだよ

ひよこ ひよこ

えっ、じゃあインタプリタなのにコンパイルもしてるの?

ペンギン先生 ペンギン先生

そうなんだよ。JavaScriptのV8エンジンやPythonのPyPyなんかがまさにそれで、「インタプリタかコンパイラか」という二択はもう古い考え方になりつつあるんだ。現代の言語処理系はハイブリッドが当たり前だね

ペンギン
まとめ:ざっくりこれだけ覚えればOK!
「インタプリタ」って出てきたら「コードを1行ずつ読んでその場で実行する仕組み」と思えればだいたいOK!
📖 おまけ:英語の意味
「Interpreter」 = 通訳者・解釈者
💬 人間の言葉を同時通訳するように、プログラムのコードをリアルタイムで機械語に翻訳して実行するから「通訳者」なんだよ
← 用語集にもどる