本文へスキップ
BecomeCoder
ブログ一覧コース一覧

コンパイラとインタプリタの違いをわかりやすく|コンパイル言語とスクリプト言語とは

#初心者#コンパイラ#インタプリタ#用語解説

結論:コンパイラは「実行する前にコード全体をまとめて機械語へ翻訳しておく」方式、インタプリタは「実行しながら1行ずつその場で解釈する」方式です。 前者を使う言語がコンパイル言語(C・Go・Rustなど)、後者を使う言語がスクリプト言語(Python・JavaScriptなど)です。どちらも「人間のコードをコンピュータが分かる形に翻訳する」目的は同じで、Become-Coderならどちらの言語も環境構築なしでブラウザ上で動かして違いを体感できます。

コンパイラとインタプリタの違い ― 翻訳の「タイミング」が違うだけ

コンピュータのCPUが直接理解できるのは、0と1でできた機械語だけです。私たちが書くprint("Hello")のようなコードは、そのままでは動きません。この「人間のコード → 機械が分かる形」への翻訳を担うのが、コンパイラインタプリタです。

両者の本質的な違いは、翻訳するタイミングです。

たとえるなら、コンパイラは「本を丸ごと翻訳し終えてから読む」、インタプリタは「その場で通訳してもらいながら読む」イメージです。用語のまとめは用語集の コンパイラとインタプリタ も参照してください。

コンパイル言語とスクリプト言語とは

この2つの方式に対応して、言語もざっくり2グループに分けられます。呼び名が違うだけで、指しているのは「その言語が主にどちらの方式で動くか」です。

「速さ」と「手軽さ」のトレードオフ、と覚えておけば入り口としては十分です。実際には両者の中間や組み合わせ(実行中に必要な部分だけ機械語へ翻訳するJITなど)も一般的で、境界は昔ほどはっきりしていません。

ブラウザで両方を動かして比べてみる(無料・環境構築なし)

言葉で読むより、同じ「Hello World」を両方式の言語で動かしてみるのが一番わかりやすいです。Become-Coderはどの言語もインストール不要で、ページ内の実行ボタンを押すだけで結果が出ます(登録不要)。

コンパイル言語を動かす(内部でコンパイルしてから実行しています):

スクリプト言語を動かす(1行ずつ解釈して実行しています):

書くコードはどれも数行ですが、「実行ボタンを押した瞬間に翻訳が起きているか、事前に翻訳済みか」の違いを、同じ画面で続けて試すと感覚がつかめます。Javaは「一度書けばどこでも動く」中間形式(バイトコード)へコンパイルする少し特殊なタイプで、その考え方は Javaコース の最初の読み物で解説しています。

初心者がつまずきやすいポイント

「コンパイルエラー」と「実行時エラー」は別物です。ここは方式の違いがそのまま現れる場所で、多くの人が混乱します。

「速いから偉い」「手軽だから初心者向け」という単純な話ではありません。壊れては困る大規模システムは事前チェックの効くコンパイル言語とにかく手を動かして試したい学習や自動化はスクリプト言語、というように目的で使い分けます。まずは1つ動かして、翻訳のタイミングの違いを体で覚えるのが近道です。

次に読む

← ブログ一覧に戻る