ソースコードとは?
ソースコードとは、プログラマーがPython、Java、Cなどの言語で書いた、人が読めるプログラムのテキストです。プレーンテキストのファイルとして保存され、コンパイラやインタプリタによってコンピュータが実行できる命令に変換されます。
更新日: 2026年9月24日
.py、.c、.java で終わるファイルをテキストエディタで開けば、そこに見えるのがソースコードです。中身は買い物メモと同じ種類のファイルで、文字、数字、空白、改行でできています。それがプログラムになるのは、テキストがプログラミング言語の規則に従って書かれていて、ツールがそれをプロセッサへの命令に変換できるからです。
ソースコードはどんな見た目か
次は完全なPythonプログラムです。コメントも含めて、すべての行がソースコードです。コメントはコンピュータには無視され、次にコードを読むプログラマーのためにあります。
Total: 12
同じプログラムをCで書いたものもソースコードです。言語が違い、規則が違うだけです。
#include <stdio.h>
int main(void) {
int price = 4;
printf("Total: %d\n", price * 3);
return 0;
}
実際のアプリケーションは、こうしたファイル数千個でできています。Linuxカーネルのソースコードは3,000万行を超え、小さなWebアプリでも数百ファイルになることは珍しくありません。各ファイルには、どの言語で書かれているかをツールに伝える拡張子が付いています。
| 拡張子 | 言語 |
|---|---|
.py | Python |
.c, .h | C |
.cpp, .hpp | C++ |
.java | Java |
.js | JavaScript |
.go | Go |
.rs | Rust |
ソースコードはプレーンテキスト
ソースコードにはフォントも色も隠れた書式もありません。エディタで見える色は、読みやすくするためにエディタが付けているもので、ファイルには保存されていません。コードをVS Codeのようなコードエディタで書き、Microsoft Wordでは書かないのはこのためです。ワープロは書式データや「スマート」な引用符を保存するので、言語が読めないファイルになり、たいていは構文エラーで拒否されます。
ただのテキストなので、あるプログラムが別のプログラムのソースを文字列として持ち、それを実行することもできます。
<class 'str'>
3 lines of text
Total: 12
最後の行までは、source は普通の文字列です。exec がそれをPythonに渡し、Pythonがテキストを読んで実行します。これがソースコードの一生の縮図です。最初はテキスト、次に命令です。
ソースコードが動くプログラムになるまで
コンピュータのプロセッサはPythonもCも読めません。実行できるのは機械語だけで、これは特定の種類のCPU向けのバイナリ命令です(多くのノートPCやサーバーではx86-64、スマートフォンやApple Silicon搭載のMacではARM)。そのため、何かが翻訳しなければなりません。主な方法は2つです。
- コンパイラはプログラム全体を事前に翻訳します。
gcc hello.c -o helloを実行すると、Cのソースを読み込み、機械語の詰まった新しいファイルhelloを書き出します。その後hello.cを削除しても、helloは動きます。 - インタプリタはソースを直接実行します。
python3 hello.pyを実行するとPythonインタプリタが起動し、hello.pyを読んでその命令を実行します。別のプログラムファイルは作られないので、毎回ソースが必要です。
多くの言語は2つを組み合わせています。Javaのソースは javac でバイトコード(.class ファイル)にコンパイルされ、それをJava仮想マシンが実行します。詳しい比較はコンパイラとインタプリタの違いのページにあります。
ソースコード、オブジェクトコード、機械語
この3つの用語は、同じプログラムの異なる段階を指します。
| 用語 | 読むのは誰か | 例 |
|---|---|---|
| ソースコード | 人とコンパイラ | app.py の中の total = price * 3 |
| オブジェクトコード | リンカ | gcc -c hello.c で作られる hello.o |
| 機械語(実行ファイル) | CPU | LinuxやmacOSの hello、Windowsの hello.exe |
コンパイル済みの実行ファイルをテキストエディタで開くと、読めない記号が並びます。テキストではなくバイナリだからです。Macでは、上の hello プログラムの先頭4バイトは16進数で cf fa ed fe で、これはMach-O形式の実行ファイルを示す目印です。こうした生の値は進数変換ツールで確かめられます。
オープンソースとクローズドソース
誰がソースコードを読めるかは、技術の問題であると同時に法律の問題でもあります。オープンソースのソフトウェアは、誰でも読み、変更し、共有できるライセンスでソースを公開しています。Python、Linux、Firefoxはオープンソースです。クローズドソース(プロプライエタリ)のソフトウェアは、コンパイル済みのプログラムだけを配布します。Microsoft WindowsやAdobe Photoshopはクローズドソースで、そのソースコードは企業秘密です。
ソースコードは本と同じように著作権でも保護されています。インターネットで見つけたコードだからといって、再利用してよいとは限りません。自分のプロジェクトに何かをコピーする前に、LICENSE という名前であることが多いライセンスファイルを確認してください。
よくある誤解
- 「ページのソースを表示すれば、Webサイトのソースコードが見える」 見えるのは、ブラウザが受け取ったHTML、CSS、JavaScriptです。サイトのサーバー側(Python、Java、PHPなどで書かれた部分)はサーバーの外に出ないので、見ることはできません。
- 「デコンパイラを使えば元のソースが戻ってくる」 デコンパイラはコンパイル済みのプログラムから読めるコードを組み立て直しますが、コメントは消え、名前も失われていることが多いので、結果はソースの推測であって、作者が書いたファイルではありません。
- 「コードとソースコードは同じ意味」 ソースコードは人が書いたものです。「コード」はもっと広く、機械語、バイトコード、自動生成されたコードも含みます。
- 「ソースコードは英語で書かなければならない」
ifやprintのようなキーワードは英単語ですが、変数名、コメント、文字列はどの言語でも書けます。Python 3のソースファイルは標準でUTF-8なので、prix = 4も# 合計を計算するも有効です。
次に読むもの
ソースコードは実行前にチェックされ、多くの初心者が最初に出会うのが構文エラーです。ソースコードを実行する2つの方法の違いを知るには、コンパイラとは何かを読んでからコンパイラとインタプリタの違いに進んでください。自分のソースコードをブラウザで書いて実行するならPythonプレイグラウンドを使うか、Pythonコースを始めましょう。
よくある質問
ソースコードの具体例を教えてください
app.py のようなPythonスクリプト、main.c のようなCのファイル、Webページに含まれるJavaScriptなどがそうです。print("Hello") の1行だけを .py ファイルに保存したものでもソースコードです。FirefoxやLinuxのようなプログラムは、何百万行ものソースコードでできています。「コード」と「ソースコード」は何が違いますか?
プログラムのソースコードはどうやって入手しますか?
HTMLはソースコードですか?
.html ファイルはWebページのソースで、ブラウザもそれを表示する機能を「ページのソースを表示」と呼んでいます。CSSファイルや、ページが読み込むJavaScriptファイルも同じです。