ソースコード 【source code】 ソースプログラム / source program / ソースリスト / source list / 原始プログラム
概要
ソースコード(source code)とは、プログラミング言語などの人間が理解・記述しやすい言語やデータ形式を用いて書き記されたコンピュータプログラムのこと。プログラムに限らず、人工言語や一定の規約・形式に基いて記述された複雑なデータ構造の定義・宣言などのこともソースコードと呼ぶ場合がある。コンピュータへの指示や一連の処理手順などをプログラミング言語によって文字データの羅列として表記したもので、そのままではコンピュータ(のCPU)では実行できないため、CPUが直に解釈できる命令コードの体系である機械語(マシン語)によるプログラムに変換されて実行される。
変換後の機械語による実行可能プログラムを「オブジェクトコード」(object code)、「オブジェクトプログラム」(object program)、「ネイティブコード」(native code)、「ネイティブプログラム」(native program)、「バイナリコード」(binary code)などと呼ぶ。
実行可能形式への変換
ソースコードからオブジェクトコードへの変換はソフトウェアによって自動的に行うのが一般的となっている。アセンブリ言語で記述されたソースコードを変換することを「アセンブル」(assemble)、そのようなソフトウェアを「アセンブラ」(assembler)という。
アセンブリ言語以外の高水準言語で記述されたソースコードを一括して変換することは「コンパイル」(compile)と言い、そのようなソフトウェアを「コンパイラ」(compiler)という。実行時に少しずつ変換しながら並行して実行するソフトウェアもあり、「インタプリタ」(interpreter)と呼ばれる。
開発時にソースコードから直接オブジェクトコードへ変換せずに、特定の機種やオペレーティングシステム(OS)の仕様・実装に依存しない機械語風の独自言語による表現(中間コード)に変換して配布し、実行時に中間コードからCPU固有の機械語に変換するという二段階の変換方式を用いる言語や処理系もある。
ソースコードの作成
ソースコードは多くの場合、人間がキーボードなどを操作して文字を入力して記述する。この作業・工程を「コーディング」(coding)という。ソースコードはテキストデータの一種であるため文書編集ソフトで作成することはできず、テキストエディタや統合開発環境(IDE)に付属する専用のコードエディタなどを用いることが多い。
必ずしも人間が記述するとは限らず、何らかの元になるデータや入力からソフトウェアによって生成したり、別の言語で記述されたソースコードを変換して生成したり、オブジェクトコードを逆変換してソースコードに戻したりといった方法で、ソフトウェアが自動的・機械的に作成する場合もある。
ソースコードの公開・非公開
日本を含む多くの国でソースコードは著作物の一種として著作権で保護されている。販売される商用ソフトウェア製品の多くは、ソースコードを企業秘密として非公開とし、人間に可読でない中間コードやオブジェクトコードによる実行プログラムのみを利用者に提供している。
一方、ソースコードを公開し、誰でも自由に入手、利用、改変、再配布、販売などができるようにしている場合もある。そのようなソフトウェアを、ソースコードがオープンになっているという意味で「オープンソースソフトウェア」(OSS:Open Source Software)という。ボランティアのプログラマが個人あるいは共同で開発しているソフトウェアに多いが、企業がOSSを開発・公開している例も多く見られる。