よろずやIT
プログラミング

コンパイラとインタープリタの違いとは?

執筆・監修:よろずやIT編集部|編集方針を見る

結論:まずここだけ読めばOK

詳しい手順・原因は、この下で解説しています。

プログラミングのイラスト

コンピューターは「人間の書いたコード」をそのまま理解できない

私たちがプログラミング言語で書いたコードは、実はコンピューター内部の部品(CPUなど)が直接理解できる言葉ではありません。人間にもわかりやすい言葉で書かれたコードを、コンピューターが実行できる形に変換する必要があり、その変換方法には大きく分けて「コンパイラ方式」と「インタープリタ方式」の2種類があります。

コンパイラ方式:先にまとめて全部翻訳しておく

コンパイラ方式は、プログラムを実行する前に、書かれたコード全体を、あらかじめコンピューターが理解できる形に一括で変換(コンパイル)しておく方式です。一度変換を終えてしまえば、実行時にはその変換済みのファイルをそのまま動かすだけなので、実行速度が速いという特徴があります。C言語やJavaなどが、この方式を採用する代表的な言語として知られています。

インタープリタ方式:その場で1行ずつ翻訳しながら進める

インタープリタ方式は、コードを実行する際に、1行ずつその場で読み込みながら、翻訳と実行を同時に行っていく方式です。事前の一括変換の手間がない分、コードを書いてすぐに動作を確認できるという手軽さがあります。PythonやJavaScriptなどが、この方式を採用する代表的な言語です。

「同時通訳」と「あらかじめ翻訳された本」に例えると

この違いは、外国語の通訳に例えるとわかりやすいかもしれません。

それぞれのメリット・デメリット

比較表で整理する

項目 コンパイラ方式 インタープリタ方式
変換のタイミング 実行前に一括変換 実行しながら1行ずつ変換
実行速度 速い やや遅い傾向
修正後の確認のしやすさ 再変換の手間がかかる すぐに確認できる
代表的な言語 C言語、Java Python、JavaScript

両方の性質を持つ「中間的な方式」も存在する

近年広く使われている言語の中には、コンパイラ方式とインタープリタ方式の中間にあたる仕組みを採用しているものも増えています。例えば、実行前に一度簡易的な変換を行い、その後の実行速度を高めるといった工夫が施されている言語もあり、必ずしも2つにきっちり分類できるわけではありません。

実際にコードを書きながら確認し、初心者がつまずきやすいと感じたポイントを中心にまとめました。

押さえておきたいポイント

コンパイラとインタープリタは、「人間の言葉をコンピューターの言葉に変換するタイミングと方法」の違いです。それぞれの特性を理解しておくと、プログラミング言語ごとの得意分野もより理解しやすくなります。厳密に二分できない中間的な方式があることも、あわせて覚えておくとよいでしょう。

PR【国内正規品】プログラミング・フォロ スピーク for CHROME MR-9123 エレキット ELEKIT ロボット プログラミング 工作キット 自由研究 プラモデル プログラミング教材 プレゼント 小学生 中学生 女の子 男の子 入門 初心者 簡単

【国内正規品】プログラミング・フォロ スピーク for CHROME MR-9123 エレキット ELEKIT ロボット プログラミング 工作キット 自由研究 プラモデル プログラミング教材 プレゼント 小学生 中学生 女の子 男の子 入門 初心者 簡単

¥13,480

楽天で見る
SHAREXLINEはてブ

よくある質問

Q.1つの言語が両方の方式に対応することはありますか?

A.はい、あります。近年は多くの言語で、コンパイラ方式とインタープリタ方式を組み合わせた仕組みが採用されており、厳密にどちらか一方だけに分類できない言語も増えています。

関連記事

最新のIT関連書籍 トップ10

PR / 楽天市場の売れ筋ランキングを定期的に取得しています。価格は変動する場合があるため、購入前に各ストアでご確認ください。