【ITの雑学】 コンピュータをプログラムで動かすまでの流れ ~ソースコードとバイナリコードの関係~

IT

私の専攻は電気系なのですが、電気電子系の仕事とIT系の知識は切っても切れない存在となります。
回路設計をしても、それを動かすCPUはソフトウェアが無いと動かないですからね。
本記事は、IT系の分野で疑問を持ったり知っておいた方が良いと個人的に思った内容についてまとめたものとなります。

今回は、「コンピュータをプログラムで動かすまでの流れ」についての説明です。

1.初めに

コンピュータを動かすためにはプログラムが必要です。
プログラムは一見何が書かれているのかわかりませんが、しっかりとした言語で記述されています。
C言語・Python・JAVAなど、使えなくても名前を聞いたことはあるのではないでしょうか?

ただ、これらの言語はそのままコンピュータが認識できるわけではありません。
コンピュータが理解できる言語に翻訳する必要があります

今回は、コンピュータをプログラムで動かすまでの流れについて簡単に説明していきます。

2.大まかな流れ

コンピュータをプログラムで動かすまでの大まかな流れは、以下のようになります。

1.人間が理解できる言語で命令文を書く。
2.コンピュータが理解できる言語に翻訳する。
3.翻訳された命令文に従ってコンピュータが仕事をする。

要するに、日本人が通訳を挟んで外国人に話しかけているようなものです。
やることはこれだけなのですが、実際の会話ではそれぞれを指す用語が入り乱れます。

具体的には、以下のような言い回しをされることがあります。

1.プログラミング言語でソースコードを書く。
2.ソースコードをバイナリコードにコンパイルする。
3.機械語で書かれたバイナリコードに従ってコンピュータが仕事をする。

なんか一気によくわからなくなったでしょう?
でも、これで言っていることは同じなんですよ。
それぞれの用語が何を意味するか理解していないと会話の意図を汲み取れないことはままあるので、流れに併せて説明をしていきます。

2-1.人間が理解できるプログラミング言語

コンピュータで実行したい事柄があったのなら、まずその命令文を作成する必要があります。
なので、直接コンピュータが理解できる言語で記述したいものなのですが、一つ問題があります。
コンピュータが理解できる言語って“0”と“1”の羅列なんですよ

そんなもの人間が考えながら書けると思いますか?
到底不可能です。
仮にできたとしても、効率が悪いのは確かです。

そこで、コンピュータを動かすために考えられた人間が理解・記述可能な人工的な言語が存在します。
それがプログラミング言語です。
C言語・Python・JAVAなどは、プログラミング言語なんです。
命令文は、まずプログラミング言語で記述するのです。

このプログラミング言語で記述された命令文のことをソースコードもしくはプログラムコードと呼びます。
どちらかと言うとソースコードと呼ばれていることの方が多いです。

ソースコードとは、英語で[source code]と書きます。
[source]の意味は[起源・情報源・出典]、[code]の意味は[規定・規約・符号]なので、英語の意味から「情報をルールに則って記述しているもの」だとはわかりますね。

ちなみに、プログラムコードは英語で[computer code]と書きます。
何故か[program code]ではないようです。

2-2.人間が理解できる言語をコンピュータが理解できる言語に翻訳(コンパイル)する

コンピュータが理解できる言語は人間には理解不能なので、間に翻訳を挟む前提の構成にしています。
なので、コンピュータに対するソースコード(命令文)をプログラミング言語で記述したら、次はこのソースコードをコンピュータが理解できる言語に翻訳する必要があります
このことをコンパイルと呼びます。

コンパイルとは、英語で[compile]と書きます。
意味は[編集する]です。
まあ、翻訳と取れないこともないですよね。

2-3.コンピュータが理解できる機械語(マシン語)

コンパイルされたソースコードは、コンピュータが理解できる言語に翻訳されます
このコンピュータが理解できる言語のことを機械語と呼びます。

機械語とは、英語で[machine language]と書きます。
そのまま[機械(コンピュータ)の言語]ということですね。
マシン語[machine code]とも呼ばれます。

そして、この機械語で記述された命令文のことをバイナリコードと呼びます。

バイナリコードとは、英語で[binary code]と書きます。
[binary]とは2進数のことです。
1010や0011という具合に“0”と“1”の羅列で表す表現方法が2進数です。
なので、その2進数で表されたコード(規定・規約・符号)だからバイナリコードと呼ばれます。

よって、ソースコードをコンパイルすることで得られたバイナリコードという命令文に従って、コンピュータが動作するのです
これがコンピュータをプログラムで動かすまでの流れです。

ちなみに、プログラミング言語(ソースコード)を機械語(バイナリコード)に翻訳することをコンパイルと呼ぶのであって、機械語(バイナリコード)をプログラミング言語(ソースコード)に翻訳することはコンパイルと呼ばないです。
そこだけ間違えないように注意しましょう。

以上、「コンピュータをプログラムで動かすまでの流れ」についての説明でした。


タイトルとURLをコピーしました