IT・プログラミング雑学

簡単でわかりやすい!コンパイルとビルドの違いとは?翻訳?建設?プログラマが詳しく解説

よぉ、桜木建二だ。パソコンやスマホでアプリを使うことが多いよな。これらのアプリをどうやってつくっているのだろう。アプリのプログラムはそのコンピューターが理解できる機械語(マシン語)というものだ。だが、プログラマはいきなり機械語でプログラムをつくるわけではない。まずは人間にもわかりやすいプログラミング言語を使う。日本語を知らないアメリカ人に日本語で話しかけらても通じないように、プログラミング言語のままではコンピューターで動かせないぞ。そのために必要なのがコンパイルやビルドだ。これらの違いや、なぜ分かれているのかを、長年会社でコンパイルやビルドを繰り返してきたプログラマでもあるライターのwoinaryと一緒に解説していくぞ。

解説/桜木建二

「ドラゴン桜」主人公の桜木建二。物語内では落ちこぼれ高校・龍山高校を進学校に立て直した手腕を持つ。学生から社会人まで幅広く、学びのナビゲート役を務める。

ライター/woinary

某社で社内向け業務システムの開発、運用を30年近くやっていたシステム屋さん。コンパイルやビルドを1万回以上はやってきた。現在はフリーランス。ガジェットやゲーム、ラノベが大好きなおっさん。

プログラムは部品の集合?コンパイルとビルドとは

パソコンやスマホのアプリはそのコンピューターの言葉で書かれたプログラムです。機械用の言葉なので、人間が普段読み書きしている言葉とはちがいます。では、プログラマはいきなりコンピューターの言葉でプログラムをつくるのでしょうか。大昔はそういう時代もありましたが、現代は多くの場合人間に分かりやすいプログラミング言語というものを使います。

そのプログラミング言語で書いたプログラムを、コンピューターの言葉に直すときに使う用語がコンパイルやビルド。アプリは大きなものではいくつもの部品からできています。その部品をコンピューターの言葉にするのがコンパイルで、できた部品をまとめて1つのアプリにするのがビルドです。分かりにくいと思うので、もう少し詳しく説明していきます。

コンパイル:1つの部品をコンピューター向けに変換すること

パソコンやスマホで使うアプリにも、大きいものから小さいものまでいろいろあります。大きなものではいくつもの部品からできていることも多いです。そのひとつひとつの部品を、人間が分かりやすいプログラミング言語から機械の言葉に翻訳することを「コンパイル」、実際に翻訳するアプリのことを「コンパイラ」と呼びます。

このコンパイルする前のプログラミング言語で書いたものが「ソースコード」、略してソースです。情報の出所のことを情報ソースとかいう言い方もしますよね。ソースというのは源という意味です。また、コンパイルした結果を「オブジェクトコード」、略してオブジェクトと呼びます。つまりコンパイルとはソースをオブジェクトに変換することです。

ビルド:いくつかの部品をまとめてひとつのプログラムにまとめること

ソースをコンパイルするとオブジェクトができますが、それだけではまだアプリにはなりません。細かい話は後で説明しますが、コンパイル以外にも作業をした結果、アプリができあがります。このソースからアプリをつくることがビルドです。ビルドとは建設すること。アプリをソースからつくることがビルドになります。その中にコンパイルも含まれているのです。

no-img2″>
 <figcaption class=桜木建二

プログラマがアプリを作るときにはまずソースというものを書く。プログラムの内容を人間に分かりやすく表現したものだ。アプリは機械の言葉になっている必要がある。ソースからアプリをつくりだす作業がビルドだ。そのビルドの中でもソースから機械の言葉、オブジェクトに翻訳する作業がコンパイルだ。

\次のページで「プログラムは定食メニュー?ご飯と味噌汁とおかずでできている」を解説!/

次のページを読む
1 2 3 4
Share: