※当サイトではアフィリエイト広告を利用しています
「ソースコード・コンパイル」という言葉を聞いて、すぐに説明ができますか?
分かるようで分からない、しかも次々と登場していくIT用語。
業界について勉強し始めたばかり!という方にも分かりやすいようにまとめました。
これで「ソースコード・コンパイル?聞いたことはあるけどよく知らない」から卒業しましょう!
今回は、ソースコード・コンパイルについて解説したいと思います。
ソースコード
ソースコードとは、コンピューターへの指示や一連の処理手順などをプログラミング言語によって文字データの羅列として表記したものです。
そのままではコンピュータ(のCPU、マイクロプロセッサ)では実行できないため、CPUが直に解釈できる命令コードの体系である機械語(マシン語)によるプログラムに変換されて実行されます。
変換後の機械語によるプログラムを「オブジェクトコード」(object code)「オブジェクトプログラム」(object program)「ネイティブコード」(native code)「ネイティブプログラム」(native program)「バイナリコード」(binary code)などと呼びます。
コーディング
ソースコードは多くの場合、人間がコンピューターを操作して文字を入力し記述します。
この作業・工程を「コーディング」といいます。
一般的なイメージとしてプログラマーが画面に向かって文字を打っているのが、コーディングです。最近では、人間が入力するだけでなく、何らかの元になるデータや入力から特殊なソフトウェアによって自動生成したりもします。
コンパイル
プログラムのソースコードをコンピューターが実行可能な機械語に翻訳することです。
翻訳するプログラムをコンパイラーと呼びます。
このタイプの言語をコンパイラー型言語といいます。
なお、インタープリターという1行ずつ機械語に翻訳しながら実行する形式のプログラムをインタープリター型言語といいます。
ビルドとの違い
最近の統合開発環境(IDE)では、ビルドという機能があります。
これは、コンパイルと似た意味で使われますが、ビルドを行うとコンパイルを行うとともに、利用するライブラリのリンクや関連ドキュメントの生成などを一緒に行います。
実際に実行可能なソフトウェアを作成するには、コンパイルだけでは作成できず、ビルドを行ってライブラリとの関連付け等を行うことで、実行可能なソフトを作成することができます。
ビルドの中の一つの作業としてコンパイルが存在するイメージです。
どちらも、同じような変換や生成を行っており、ビルドに関しては、開発環境側が自動的に行うため正確に把握できていない場合があり、開発現場でも同じ意味合いとしてとらえられている場合があります。
プログラミング言語
コーディングに利用されるプログラミング言語には様々なものがあります。
コンパイルの種類に2種類あるのに合わせて、開発言語も大きく2種類に分かれます。
コンパイル言語
コンパイラーでソースコードを事前にコンパイルして、先に機械語に変換しておく言語です。
事前に変換されているため、高速で動作しますが、プログラムの記述ルールが厳密ですこし面倒なのがポイントです。
主な言語として、C、C++、COBOLなどがあります。
スクリプト言語
ソースコードを実行時に機械語に変換しながら実行する形で、低速で動作する代わりに短い記述で処理を実現できます。
また、コンパイルする必要がないため、変更内容がすぐに反映されます。
主な言語として、Python、Perl、PHP、JavaScriptなどがあります。
中間言語
コンパイル型とインタープリター型の中間のような言語です。
事前に中間言語と呼ばれるそのままでは実行できない形に一度変換し、実行時に機械語に変換して実行するものです。
実行環境の差異を吸収しやすいというメリットがあります。
主な言語として、Java、C#、VB.netなどがあります。