3分で簡単にわかるコンパイルとビルドの違い!リンクとの関係性やデプロイ・リリースとの違いも雑学好きライターがわかりやすく解説
その方法としてよく聞く言葉が「コンパイル」と「ビルド」です。
今回は「コンパイル」と「ビルド」の違いについて、現役エンジニアのおおつけと一緒に解説していきます。
ライター/おおつけ
現役システムエンジニア兼ライター。前職は貿易商社の営業マン。知らない言葉は徹底的に調べるクセがあり、独自の単語帳を作っている。日々たくわえた広い知識を、わかりやすく紹介していく。
コンパイルとビルドの違い
image by iStockphoto
プログラマが記述したソースコードは、そのままではコンピューターが実行することはできません。そこで必要になるのが「コンパイル」と「ビルド」ですが、両者の違いを説明できる人はあまり多くないでしょう。ここではまず「コンパイル」と「ビルド」の違いについて解説していきます。
こちらの記事もおすすめ
5分で分かる!SEとプログラマーの違いとは?年収やスキル・仕事内容も現役エンジニアがわかりやすく解説
コンパイル:マシン語に変換すること
「コンパイル」とはマシン語と呼ばれる、コンピューターが理解できる言語にソースコードを変換することを意味します。プログラマの書いたソースコードはプログラミング言語という、自然言語(人間が会話や計算で使う一般的な言語)に近いもの。このままではコンピューターが理解できないため、「コンパイル」する必要があるのです。
「コンパイル」は「コンパイラ」と呼ばれるプログラムが実行します。ちなみにこれらの処理は「コンパイラ型言語」と分類される言語共通のものであり、「インタプリタ型言語」という分類では行われません。
ビルド:コンパイルしたファイルを実行すること
「ビルド」とはコンパイルしたファイルを一つにまとめ、実行まですることです。
例えば一つのWebサイトを表示するためには、画面を描画するためのHTMLファイルや、画面の挙動を制御するJavascriptファイルや、サーバとの通信処理をするためのクラスファイルが存在したります。これらを「コンパイル」してマシン語にしたあと、一連のファイル組み合わせ、一つの実行ファイルとして実行する。これが「ビルド」です。
こちらの記事もおすすめ
5分で分かる!HTMLとCSSの違いとは?定義や役割・読み込み方も現役エンジニアがわかりやすく解説
リンクとの関係性
image by iStockphoto
ソースコードはそのままでは実行できず、「コンパイル」が必要となることはおわかりいただけたことでしょう。しかし「コンパイル」したファイルをまとめて実行するまでが「ビルド」だとしたら、かなり「ビルド」の意味が幅広いものになってしまいます。ここでは両者をつなぐ「リンク」という言葉についても見ていきましょう。
リンク:コンパイルしたファイルを統合すること
「ビルド」するまでに処理される、「コンパイル」した一連のファイルを一つの実行ファイルとしてまとめること、これが「リンク」です。「リンク」を実行するプログラムのことを「リンカ」と言います。
ビルドとはコンパイル+リンクのこと
実は「ビルド」という概念は、「コンパイルしたソースコード」を「リンク」して実行するまでの、一連の流れのことを指しています。そのため「ビルド」とは「コンパイル」+「リンク」という意味であると言えるのです。
\次のページで「デプロイやリリースとの違い」を解説!/