Page Top

ソースコードは、コンピュータプログラムの「設計図」や「指示書」にあたるテキストデータです。Web技術やプログラミングを学び始めた方に向けて、この記事ではソースコードの基本的な意味や役割、そしてコンピュータが実行するプログラムとして動く仕組みまでを解説します。この記事を読めば、ソースコードがソフトウェア全体の中でどのような位置づけなのかを理解できます。
<この記事で紹介する3つのポイント>
目次

ソースコードは、人間が理解できる特定のルール(プログラミング言語)で記述された、コンピュータへの指示内容そのものです。 アプリケーションやWebサイトがどのような動作をすべきか、その具体的な手順や設計が詳細に書かれています。
よく「料理のレシピ」や「建物の設計図」に例えられます。レシピがなければおいしい料理が作れないように、コンピュータもソースコードがなければ意図した通りに動作できません。このテキストデータを基にして、私たちが日常的に使うソフトウェアやアプリが作られます。
ソースコードの最も重要な役割は、人間が考えた複雑な指示を、コンピュータが理解できる形式に変換する「元」となることです。
コンピュータの頭脳にあたるCPU(中央演算処理装置)は、最終的に「0」と「1」の羅列である「機械語(マシン語)」しか理解できません。しかし、人間が「01010011 11010010」のような指示を直接書くのは不可能です。
そこで、人間が読み書きしやすいように作られた「プログラミング言語」(C言語やPython、JavaScriptなど)を使い、「もしボタンが押されたら、この画像を表示する」といった指示を記述します。この人間用の指示書がソースコードです。
ソースコードは「設計図(テキスト)」であり、プログラムは「実行可能な完成品(ファイル)」であるという点が決定的な違いです。
ソースコードは、あくまでプログラミング言語で書かれたテキストファイル(例: main.py や script.js)に過ぎません。それ自体は実行できません。
この「設計図」を、後述するコンパイラやインタプリタという「翻訳機」にかけることで、コンピュータが実行できる形式(例: Windowsの .exe ファイルや、機械語の塊)に変換します。この変換後の「完成品」がプログラム(またはソフトウェア)と呼ばれます。

ソースコードは、使用する「プログラミング言語」によって、その文法(書き方のルール)や得意な分野が全く異なります。 人間の言語に英語や日本語があるように、コンピュータ言語にも多くの種類が存在します。ここでは、Web技術を学ぶ上で特によく目にする3種類の言語を取り上げ、それぞれのソースコードがどのようなものか、簡単な例を紹介します。
HTML(HyperText Markup Language)は、Webページの「骨組み(構造)」を作るためのマークアップ言語です。 厳密には動作を記述するプログラミング言語とは区別されますが、Webサイトのソースコードの最も基本となるものです。タグと呼ばれる < > で囲まれた目印を使い、テキストが「見出し」なのか「段落」なのか、あるいは「画像」なのかを定義します。
HTML
<!DOCTYPE html>
<html>
<head>
<title>ページのタイトル</title>
</head>
<body>
<h1>これは大きな見出しです</h1>
<p>これは段落のテキストです。</p>
<img src=”image.jpg” alt=”画像の説明”>
</body>
</html>
JavaScriptは、HTMLとCSSで作られた静的なWebページに「動き」や「対話性(インタラクティブ性)」を持たせるプログラミング言語です。 HTMLが骨組み、CSSが見た目の装飾だとすれば、JavaScriptは動作を担当します。例えば、スライドショー、ポップアップウィンドウの表示、フォームの入力チェックなどに使われます。
JavaScript
// IDが ‘myButton’ の要素(ボタン)がクリックされた時の処理
document.getElementById(‘myButton’).onclick = function() {
alert(‘ボタンが押されました!’);
};
// コンソール(開発者ツール内)にメッセージを出力する
console.log(‘ページが読み込まれました’);
Python(パイソン)は、文法がシンプルで人間にとって読みやすく、学びやすいことから非常に人気のあるプログラミング言語です。 Webアプリケーション開発(Instagramなど)でも使われますが、近年は特にAI(人工知能)開発、機械学習、データ分析の分野で広く利用されています。ライブラリ(機能の部品)が豊富なことも強みです。
Python
# ‘Hello, World!’ と画面に出力する
print(‘Hello, World!’)
# 変数を使って計算する
a = 10
b = 20
total = a + b
# 計算結果を出力する
print(f’合計は {total} です’) # 合計は 30 です と出力される

私たちが普段閲覧しているWebサイトのソースコード(主にHTML, CSS, JavaScript)は、ブラウザの機能を使って誰でも簡単に見ることができます。 Google Chrome, Microsoft Edge, Firefox, Safariなど、主要なブラウザにはこの機能が標準で搭載されています。
最も簡単な手順は以下の通りです。
また、より高度な分析ができる「開発者ツール」(メニューの「検証」や「要素を調査」、またはF12キー)を使うと、HTMLだけでなく、CSS(装飾)やJavaScript(動作)のコード、通信状況、エラー内容などもリアルタイムで確認できます。

人間が書いたソースコード(テキスト)は、そのままではコンピュータ(CPU)は理解できません。コンピュータは「機械語(0と1の羅列)」しか扱えないため、ソースコードを機械語に「翻訳」する作業が必要です。
この翻訳の方式には、大きく分けて「コンパイル」と「インタプリタ」の2種類があります。
コンパイル(一括翻訳) コンパイル方式は、ソースコード全体を「事前に一括翻訳」する方法です。 翻訳作業を行うソフトウェアを「コンパイラ」と呼びます。
C言語やC++、Java(Javaは中間コードと呼ばれる特殊な形式にコンパイル)などが代表的です。実行時にはすでに翻訳が完了しているため、動作が非常に高速であるというメリットがあります。半面、コードを少し修正するたびにコンパイル(翻訳作業)をやり直す必要があります。
インタプリタ(逐次翻訳) インタプリタ方式は、ソースコードを「実行時に1行ずつ翻訳」する方法です。翻訳作業を行うソフトウェアを「インタプリタ」と呼びます。
PythonやJavaScript、Rubyなどがこの方式を採用しています。実行のたびに翻訳が行われるため、コンパイル方式に比べると実行速度は遅くなる傾向があります。しかし、書いたコードをすぐに実行して結果を確認できるため、開発や学習がしやすいというメリットがあります。
現代のJavaScriptエンジン(Google V8など)は、両者の利点を組み合わせた「JITコンパイル(Just-In-Time compilation)」という高度な技術を使い、実行速度を向上させています。

ここでは、ソースコードに関して初心者が抱きがちな疑問について、Q&A形式で回答します。
ソースコードの読み書き(プログラミング)は、現在さまざまな方法で学習できます。 ご自身の目的やライフスタイルに合わせて選ぶと良いでしょう。
ソースコードは、文章や音楽と同じく「著作物」であり、作成者に「著作権」が発生します。そのため、他人が作成したソースコードを無断でコピー、編集、改造、再配布することは、原則として著作権侵害にあたる可能性があります。
しかし、世の中の多くのソフトウェアは、特定のルールを守れば誰でも自由に利用・改変・再配布ができる「オープンソースソフトウェア(OSS)」として公開されています。この「ルール」を明記したものが「オープンソースライセンス(利用許諾契約)」です。
ライセンスには多くの種類があり、それぞれ守るべき条件が異なります。
他人のコードを利用する際は、必ずライセンスを確認し、その条件を遵守することが不可欠です。
ソースコード解析ツールは、人間が書いたソースコードをスキャンし、プログラムを実行する「前」に、潜在的なバグ(不具合)やセキュリティ上の弱点(脆弱性)を自動で検出するためのソフトウェアです。
このような、プログラムを実行せずにソースコード自体を検査する手法を「静的解析 (SAST: Static Application Security Testing)」と呼びます。
開発の早い段階(コードを書いている最中)で問題を発見できるため、修正コストを低く抑えられるのが大きなメリットです。例えば、「使用していない変数」といった単純なミスから、「SQLインジェクション」のような重大な脆弱性につながる可能性のあるコードパターンまでを検出します。
比較対象として、プログラムを実際に動作させながら、外部からの攻撃シミュレーションなどを行って脆弱性を探す「動的解析 (DAST: Dynamic Application Security Testing)」という手法もあります。SASTは「設計図」を、DASTは「完成品(動作中)」を検査するイメージです。両者は補完関係にあり、堅牢なソフトウェア開発のために併用されます。
ソースコードは、コンピュータを意図した通りに動かすための「設計図」であり、人間がプログラミング言語で記述した指示書です。 HTMLのようにWebページの構造を定義するものから、PythonのようにAI開発を支えるものまで、あらゆるソフトウェアの根幹をなしています。
ソースコードは、コンパイラやインタプリタによってコンピュータが理解できる機械語に翻訳されて「プログラム」として動作します。ブラウザの開発者ツールを使えば、今見ているWebサイトのソースコードを覗き見ることも可能です。
安全で高品質なWebサイトやアプリケーションを構築するには、ソースコードの品質管理やセキュリティ対策が欠かせません。
株式会社DYMでは、セキュリティと品質を考慮したWebサイトの制作から、公開後の保守・運用までをワンストップでサポートする「Webサイト制作・運用サービス」を行っています。専門的なWeb開発や運用でお困りの際は、ぜひご相談ください。
「世界で一番社会を変える会社を創る」というビジョンのもと、WEB事業、人材事業、医療事業を中心に多角的に事業を展開し、世界で一番社会貢献のできる会社を目指しています。時代の変化に合わせた新規事業を生み出しながら世界中を変革できる「世界を代表するメガベンチャー」を目指し、日々奮闘しています。