「分かりそう」で「分からない」でも「分かった」気になれるIT用語辞典イメージぴよ画像「分かりそう」で「分からない」でも「分かった」気になれるIT用語辞典

「コンパイル言語」と「インタプリタ言語」の違い

スポンサーリンク

予備知識


用語意味
ソースコード人間語で書いたプログラムの元ネタ
プログラミング言語ソースコードを書くときに使う言葉
機械語コンピュータさんが分かる言葉
コンパイルソースコードをコンピュータさんが分かる言葉に翻訳する作業
インタプリタ「ちょっと翻訳して、ちょっと実行」方式

プログラムを作って動かすまでの一般的な流れは

1.人間語でプログラムの元ネタを書く
2.元ネタを人間語から機械語に翻訳する
3.翻訳された指示に従って、コンピュータさんが お仕事する


です。


「コンパイル言語」と「インタプリタ言語」の違い1

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


「コンパイル言語」と「インタプリタ言語」の違い2

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


「コンパイル言語」と「インタプリタ言語」の違い3

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


「コンパイル言語」と「インタプリタ言語」の違い4

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


「コンパイル言語」と「インタプリタ言語」の違い5

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


「コンパイル言語」と「インタプリタ言語」の違い6

かなり簡略化した説明ですけどね。
これがプログラムを作るときの流れです。


それぞれの用語の意味


用語意味
コンパイル言語作ったプログラムを動かすときには、プログラムの中身を最初に全部まとめて人間様が分かる言葉(人間語)からコンピュータさんが分かる言葉(機械語)へ翻訳してから動かすことになるプログラミング言語
インタプリタ言語作ったプログラムを動かすときには「1行目を翻訳して、実行」「2行目を翻訳して、実行」のように、プログラムの中身を人間様が分かる言葉(人間語)からコンピュータさんが分かる言葉(機械語)へ翻訳「しながら」動かすことになるプログラミング言語

似ているところ


どちらもプログラミング言語の分類を指す用語です。


違うところ


どこまで翻訳した時点で実行するかが違います。

コンパイル言語は「全部翻訳してから、まとめて実行」です。
例えば、人間様の書いたプログラムが

1.ご飯を食べろ
2.歯を磨け
3.早く寝ろ


だとしましょう。
それに対応するコンピュータさんの言葉が

1.ゴハンタベーロ
2.ハヲミガケー
3.ハヤクネロー


だったとします。
このとき、コンパイル言語で作ったプログラムは

1.ご飯を食べろ
2.歯を磨け
3.早く寝ろ
↓(翻訳)
1.ゴハンタベーロ
2.ハヲミガケー
3.ハヤクネロー

1.コンピュータさん、ご飯を食べる
2.コンピュータさん、歯を磨く
3.コンピュータさん、早く寝る


のように最初に全部まとめて翻訳してから実行されます。


「コンパイル言語」と「インタプリタ言語」の違い7

一方、インタプリタ言語は「翻訳しながら実行」です。
インタプリタ言語で作ったプログラムは

1.ご飯を食べろ
↓(翻訳)
1.ゴハンタベーロ

1.コンピュータさん、ご飯を食べる


2.歯を磨け
↓(翻訳)
2.ハヲミガケー

2.コンピュータさん、歯を磨く


3.早く寝ろ
↓(翻訳)
3.ハヤクネロー

3.コンピュータさん、早く寝る


のように少しずつ翻訳→実行されます。


「コンパイル言語」と「インタプリタ言語」の違い8
スポンサーリンク
書籍画像035
書籍画像031


書籍画像
わわわ説明術コラム
宣伝だよ
優れたエンジニアがコミュニティの中でしていること
「分かった!」と思わせる説明の技術 知識ゼロの相手にも伝わるようになる本
つくって、壊して、直して学ぶ Kubernetes入門