「コンパイル言語」と「インタプリタ言語」の違い
予備知識
| 用語 | 意味 |
|---|---|
| ソースコード | 人間語で書いたプログラムの元ネタ |
| プログラミング言語 | ソースコードを書くときに使う言葉 |
| 機械語 | コンピュータさんが分かる言葉 |
| コンパイル | ソースコードをコンピュータさんが分かる言葉に翻訳する作業 |
| インタプリタ | 「ちょっと翻訳して、ちょっと実行」方式 |
プログラムを作って動かすまでの一般的な流れは
1.人間語でプログラムの元ネタを書く
2.元ネタを人間語から機械語に翻訳する
3.翻訳された指示に従って、コンピュータさんが お仕事する
です。

コンピュータさんは人間語が分かりません。

人間様はコンピュータさんの言葉が分かりません。

プログラムは人間様が作るものです。
そこで最初は人間様が分かる言葉でプログラムを作ります。
コンピュータさんに対する「あれをやれ」「これをやれ」な命令を人間語で書くのです。

次に人間語で書いたプログラムの元ネタをコンピュータさんが分かる言葉に翻訳します。
実際に お仕事をするのは、コンピュータさんですからね。
コンピュータさんが分かる言葉に変換する必要があるのです。

コンピュータさんが分かる言葉に翻訳したので、コンピュータさんは命令の内容を理解できます。
指示に従って、お仕事をしてくれるでしょう。

かなり簡略化した説明ですけどね。
これがプログラムを作るときの流れです。
それぞれの用語の意味
| 用語 | 意味 |
|---|---|
| コンパイル言語 | 作ったプログラムを動かすときには、プログラムの中身を最初に全部まとめて人間様が分かる言葉(人間語)からコンピュータさんが分かる言葉(機械語)へ翻訳してから動かすことになるプログラミング言語 |
| インタプリタ言語 | 作ったプログラムを動かすときには「1行目を翻訳して、実行」「2行目を翻訳して、実行」のように、プログラムの中身を人間様が分かる言葉(人間語)からコンピュータさんが分かる言葉(機械語)へ翻訳「しながら」動かすことになるプログラミング言語 |
似ているところ
どちらもプログラミング言語の分類を指す用語です。
違うところ
どこまで翻訳した時点で実行するかが違います。
コンパイル言語は「全部翻訳してから、まとめて実行」です。
例えば、人間様の書いたプログラムが
1.ご飯を食べろ
2.歯を磨け
3.早く寝ろ
だとしましょう。
それに対応するコンピュータさんの言葉が
1.ゴハンタベーロ
2.ハヲミガケー
3.ハヤクネロー
だったとします。
このとき、コンパイル言語で作ったプログラムは
1.ご飯を食べろ
2.歯を磨け
3.早く寝ろ
↓(翻訳)
1.ゴハンタベーロ
2.ハヲミガケー
3.ハヤクネロー
↓
1.コンピュータさん、ご飯を食べる
2.コンピュータさん、歯を磨く
3.コンピュータさん、早く寝る
のように最初に全部まとめて翻訳してから実行されます。

一方、インタプリタ言語は「翻訳しながら実行」です。
インタプリタ言語で作ったプログラムは
1.ご飯を食べろ
↓(翻訳)
1.ゴハンタベーロ
↓
1.コンピュータさん、ご飯を食べる
2.歯を磨け
↓(翻訳)
2.ハヲミガケー
↓
2.コンピュータさん、歯を磨く
3.早く寝ろ
↓(翻訳)
3.ハヤクネロー
↓
3.コンピュータさん、早く寝る
のように少しずつ翻訳→実行されます。







