プログラミングの世界において、記述したソースコードを実行できる状態にする必要がある。
その方法としてよく聞く言葉が「コンパイル」と「ビルド」です。
今回は「コンパイル」と「ビルド」の違いについて、現役エンジニアのおおつけと一緒に解説していきます。

ライター/おおつけ

現役システムエンジニア兼ライター。前職は貿易商社の営業マン。知らない言葉は徹底的に調べるクセがあり、独自の単語帳を作っている。日々たくわえた広い知識を、わかりやすく紹介していく。

コンパイルとビルドの違い

image by iStockphoto

プログラマが記述したソースコードは、そのままではコンピューターが実行することはできません。そこで必要になるのが「コンパイル」と「ビルド」ですが、両者の違いを説明できる人はあまり多くないでしょう。ここではまず「コンパイル」と「ビルド」の違いについて解説していきます。

コンパイル:マシン語に変換すること

「コンパイル」とはマシン語と呼ばれる、コンピューターが理解できる言語にソースコードを変換することを意味します。プログラマの書いたソースコードはプログラミング言語という、自然言語(人間が会話や計算で使う一般的な言語)に近いもの。このままではコンピューターが理解できないため、「コンパイル」する必要があるのです。

「コンパイル」は「コンパイラ」と呼ばれるプログラムが実行します。ちなみにこれらの処理は「コンパイラ型言語」と分類される言語共通のものであり、「インタプリタ型言語」という分類では行われません。

ビルド:コンパイルしたファイルを実行すること

「ビルド」とはコンパイルしたファイルを一つにまとめ、実行まですることです。

例えば一つのWebサイトを表示するためには、画面を描画するためのHTMLファイルや、画面の挙動を制御するJavascriptファイルや、サーバとの通信処理をするためのクラスファイルが存在したります。これらを「コンパイル」してマシン語にしたあと、一連のファイル組み合わせ、一つの実行ファイルとして実行する。これが「ビルド」です。

リンクとの関係性

image by iStockphoto

ソースコードはそのままでは実行できず、「コンパイル」が必要となることはおわかりいただけたことでしょう。しかし「コンパイル」したファイルをまとめて実行するまでが「ビルド」だとしたら、かなり「ビルド」の意味が幅広いものになってしまいます。ここでは両者をつなぐ「リンク」という言葉についても見ていきましょう。

リンク:コンパイルしたファイルを統合すること

「ビルド」するまでに処理される、「コンパイル」した一連のファイルを一つの実行ファイルとしてまとめること、これが「リンク」です。「リンク」を実行するプログラムのことを「リンカ」と言います。

ビルドとはコンパイル+リンクのこと

実は「ビルド」という概念は、「コンパイルしたソースコード」を「リンク」して実行するまでの、一連の流れのことを指しています。そのため「ビルド」とは「コンパイル」+「リンク」という意味であると言えるのです。

\次のページで「デプロイやリリースとの違い」を解説!/

デプロイやリリースとの違い

image by iStockphoto

ソースコードを実行できる状態にする言葉としてよく耳にするものには「デプロイ」や「リリース」といったものがあります。はたして「コンパイル」や「ビルド」と、これらの言葉は何が違うのでしょうか。ここでは関連用語として、「デプロイ」と「リリース」について解説していきます。

デプロイ:実行ファイルを配置すること

「ビルド」したことで実行ファイルは完成するものの、そのままでは実行ファイルを実行することができません。Webサーバーなど、実行ファイルが実際に実行できる環境に配置することができます。

この実行ファイルを実行環境に配置し、実行可能な状態にすることが「デプロイ」です。「デプロイ(deploy)」は英語で「配置する」という意味があります。

リリース:ユーザーが使える状態にする

「リリース(release)」は「解放する」という意味の英単語で、実際にユーザーが機能を使える状態にすることを意味します。「デプロイ」しただけでは実行可能状態にできるだけで、実際に実行するには「リリース」の手順が必要なのです。

例えば実行ボタンを押せるようにする、新規ページに画面遷移できるようにするなどを指します。つまり「デプロイ」は「リリース」の作業の一部と言えるのです。

コンパイルはマシン語への変換、ビルドは実行ファイルの作成

ここまで「コンパイル」と「ビルド」の違い、「リンク」との関係性、そして「デプロイ」や「リリース」との違いについて解説してきました。「コンパイラ型言語」でのシステム開発の構造が見えてきたのではないでしょうか。

プログラミングに関連する用語の難しさは、同じような意味を指していても、意味の幅で別の言葉を使うということです。今回の例でいえば、「ビルド」の中に「コンパイル」と「リンク」が、「リリース」の中に「ビルド」や「デプロイ」という言葉が含まれていました。

エンジニア同士での会話では、その言葉がどのような概念レベルを指しているのかをお互い理解しながら使うことが重要になってくるのです。

" /> 3分で簡単にわかるコンパイルとビルドの違い!リンクとの関係性やデプロイ・リリースとの違いも雑学好きライターがわかりやすく解説 – Study-Z
IT・プログラミング雑学

3分で簡単にわかるコンパイルとビルドの違い!リンクとの関係性やデプロイ・リリースとの違いも雑学好きライターがわかりやすく解説

プログラミングの世界において、記述したソースコードを実行できる状態にする必要がある。
その方法としてよく聞く言葉が「コンパイル」と「ビルド」です。
今回は「コンパイル」と「ビルド」の違いについて、現役エンジニアのおおつけと一緒に解説していきます。

ライター/おおつけ

現役システムエンジニア兼ライター。前職は貿易商社の営業マン。知らない言葉は徹底的に調べるクセがあり、独自の単語帳を作っている。日々たくわえた広い知識を、わかりやすく紹介していく。

コンパイルとビルドの違い

image by iStockphoto

プログラマが記述したソースコードは、そのままではコンピューターが実行することはできません。そこで必要になるのが「コンパイル」と「ビルド」ですが、両者の違いを説明できる人はあまり多くないでしょう。ここではまず「コンパイル」と「ビルド」の違いについて解説していきます。

コンパイル:マシン語に変換すること

「コンパイル」とはマシン語と呼ばれる、コンピューターが理解できる言語にソースコードを変換することを意味します。プログラマの書いたソースコードはプログラミング言語という、自然言語(人間が会話や計算で使う一般的な言語)に近いもの。このままではコンピューターが理解できないため、「コンパイル」する必要があるのです。

「コンパイル」は「コンパイラ」と呼ばれるプログラムが実行します。ちなみにこれらの処理は「コンパイラ型言語」と分類される言語共通のものであり、「インタプリタ型言語」という分類では行われません。

ビルド:コンパイルしたファイルを実行すること

「ビルド」とはコンパイルしたファイルを一つにまとめ、実行まですることです。

例えば一つのWebサイトを表示するためには、画面を描画するためのHTMLファイルや、画面の挙動を制御するJavascriptファイルや、サーバとの通信処理をするためのクラスファイルが存在したります。これらを「コンパイル」してマシン語にしたあと、一連のファイル組み合わせ、一つの実行ファイルとして実行する。これが「ビルド」です。

リンクとの関係性

image by iStockphoto

ソースコードはそのままでは実行できず、「コンパイル」が必要となることはおわかりいただけたことでしょう。しかし「コンパイル」したファイルをまとめて実行するまでが「ビルド」だとしたら、かなり「ビルド」の意味が幅広いものになってしまいます。ここでは両者をつなぐ「リンク」という言葉についても見ていきましょう。

リンク:コンパイルしたファイルを統合すること

「ビルド」するまでに処理される、「コンパイル」した一連のファイルを一つの実行ファイルとしてまとめること、これが「リンク」です。「リンク」を実行するプログラムのことを「リンカ」と言います。

ビルドとはコンパイル+リンクのこと

実は「ビルド」という概念は、「コンパイルしたソースコード」を「リンク」して実行するまでの、一連の流れのことを指しています。そのため「ビルド」とは「コンパイル」+「リンク」という意味であると言えるのです。

\次のページで「デプロイやリリースとの違い」を解説!/

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