ユーニックス総合研究所

  • home
  • archives
  • programming-source-code

プログラミングのソースコードとは?命令が書かれた文書です

プログラミングで使うソースコードとはなにか?

プログラミングでよく出てくる「ソースコード」とは一体何なのでしょうか?
結論から言うと、ソースコードとはパソコンへの命令が書かれた文書のことです。

🐭 < パソコンへの命令?

🦝 < そう。命令が書かれている文書のこと

このソースコードからパソコンで実行できる実行ファイル(プログラム)を作ることができます。
この記事ではソースコードについて具体的に↓を見ていきたいと思います。

  • ソースコードとは命令が書かれた文書
  • ソースコードはこんなもの
  • ソースコードはどうやって使う?
  • ソースコードの書き方

ソースコードとは命令が書かれた文書

「ソフトウェア」とは、パソコンで実行できるプログラム(実行ファイル)のことです。
これはバイナリという01の羅列で書かれています。
なぜ01で書かれているのかと言うと、パソコンはその2つの数値しか理解できないためです。

🐭 < パソコンってお馬鹿なんだね

🦝 < 手は速いけどね

01しか理解できなくても、実は数は無限に表現することができます。
これは「2進法」と呼ばれる01のみを使った数の表現方法が使えるからです。
そのためパソコンも結果として、大きな数字を扱えることになります(制限はあります)。

プログラムは2進数で書かれていますが、人が2進数でプログラムを書くのはしんどい作業です。
そのため「プログラミング言語」という人が理解しやすい言語が生まれました。
このプログラミング言語でパソコンへの命令を書いて、それを2進数に変換するという方法が取られるようになったのです。

このプログラミング言語で書かれた文書のことを「ソースコード」と言います。
ソースコードは最終的にパソコンが理解できるバイナリ(2進数)に変換されるか、あるいはソフトウェアで読み込まれる宿命を背負っています。

パソコンに命令を与えるのがプログラミング

先程も言ったようにパソコンは2進数しか理解できません。
量子コンピューターという2進数以上のことを理解できるパソコンの開発も進んでいますが、現代ではまだ2進数を理解できるパソコンが主流です。

最終的に2進数に変換する予定のソースコードを書く行為のことを「プログラミング」といいます。
ソースコードにはパソコンへの命令、たとえば「ファイルを開け」とか「他のパソコンと通信しろ」とかの命令を書くわけですが、これらの命令を書くのがプログラミングです。

プログラミング言語は世界中にたくさんあります。
たとえばC言語やRuby, Pythonなどなど。
これらのプログラミング言語は、それぞれ書き方が違っています。

書き方は違いますが、最終的にパソコンに与える命令はすべての言語で共通していて、それらは単純なものです。
具体的には「読み込み」や「書き込み」です。

プログラミング言語でパソコンに与える命令は、このような単純な命令をいろいろと抽象化したものになっています。
プログラミングを行う人を「プログラマー」とか「開発者」などと言います。
これらは現代では職業として成り立っていて、GAFAをはじめとする巨大企業や中小企業などでたくさんのプログラマーが働いています。

コンパイラとインタプリタ

ソースコードをバイナリに変換する、あるいはパソコンに実行させる方法は大きく分けて2つあります。
それらは↓の2つです。

  • コンパイラでソースコードをコンパイルする
  • インタプリタでソースコードを実行する

コンパイラ」とはプログラミング言語で書かれたソースコードを、バイナリに変換するソフトウェアのことです。
たとえばgcc(ジーシーシー)clang(クラン)などが有名です。
コンパイラでソースコードをバイナリに変換することを「コンパイルする」と言います。

もう1つのインタプリタは少し特殊なんですが、今はRubyやPythonなどの多くの言語がこの方式を採用しています。
インタプリタとはプログラミング言語で書かれたソースコードを理解して、そのままパソコンに命令を与えていくソフトウェアのことです。

インタプリタはコンパイラと違ってソースコードをバイナリに変換しません。
しかしインタプリタがソースコードを理解してパソコンに命令を送ることで、ソースコードをプログラムのように実行することができます。
このとき、インタプリタに読み込ませるソースコードのことを「スクリプト」と言います。

速度的にはコンパイラで作ったバイナリのほうがパソコンに速く命令を実行させることができます。

プログラミング言語はいわゆる「コンパイラ型」の言語と「インタプリタ型」の言語にわかれています。
そのため言語によってパソコンへの命令の与え方が違ってきます。

ソースコードはこんなもの

では具体的にプログラミング言語で書かれたソースコードを見てみましょう。

C言語のソースコード

C言語(シーげんご)」はコンパイラ型のプログラミング言語です。
デニス・リッチー氏というアメリカの計算機科学者がUNIX(ユニックス)というOSを作るために開発しました。
C言語による「Hello, World!」プログラムは↓になります。

#include <stdio.h>  

int main(void) {  
    printf("Hello, World!\n");  
    return 0;  
}  

C言語はその動作が速いのが特徴です。
そのためプログラミング言語の開発や、OSの開発に使われます。
RubyやPythonはC言語で書かれていますし、Linux(リナックス)というOSもC言語で書かれています。

Pythonのソースコード

Python(パイソン)」はインタプリタ型のプログラミング言語です。
オランダ出身のプログラマーであるグイド・ヴァンロッサム氏が開発しました。
Pythonによる「Hello, World!」プログラムは↓になります。

print('Hello, World!')  

Pythonは高水準言語として開発され、機械学習などのAI, Webアプリの制作などに使われています。
インデントを使った文法が特徴的です。

ソースコードはどうやって使う?

ソースコードを利用するには、繰り返しになりますが大きく分けて↓の2つの方法があります。

  • コンパイルしてバイナリを実行する
  • インタプリタでソースコードを実行する

プログラミング言語でソースコードを書いても、↑の2つの方法のいずれかをしないと、ソースコードを書いた意味があまりありません。
ソースコードはそれだけではただのパソコンへの命令が書かれた文書です。
じっさいにパソコンに命令を実行させるには、さきほども紹介したコンパイラやインタプリタが必要になってきます。

🦊 < ソースコードだけあっても意味がないのか

🦝 < 正確には資産としての意味はある

🦝 < ソースコード=プログラムとほぼ同じだから、

🦝 < ソースコードの流出はプログラムの流出と同じこと

ソースコードをコンパイルする

コンパイラ型の言語で書かれたソースコードをコンパイルするにはまずコンパイラを用意する必要があります。
C/C++などのプログラミング言語ではgccclangといったコンパイラを利用します。

WindowsではMSVCなどを利用します。
(MinGWというWindowsでgccを使えるソフトウェアもあります)

Visual Studio C/C++ IDE と Windows 用コンパイラ

gccでたとえばprog.cというC言語によるソースコードが書かれたファイルをコンパイルするには、↓のようにコマンドを実行します。

gcc prog.c  

↑のようにコマンドを実行するとa.outa.exeというバイナリファイルが作られます。
あとはこれを実行すればパソコンに命令を実行させることができます。

ソースコードをインタプリタで実行する

インタプリタ型の言語で書かれたソースコード(スクリプト)をインタプリタで実行するには、言語ごとのインタプリタを用意する必要があります。
Pythonのインタプリタはpythonというバイナリファイルです。
これはPythonの公式サイトから入手することができます。

pythonインタプリタでたとえばprog.pyというPythonによるスクリプトファイルを実行するには、↓のようにコマンドを実行します。

python prog.py  

ソースコードの書き方

ソースコードを書くにはどうしたらいいのでしょうか?
ソースコードを書くには↓の2つを用意する必要があります。

  • エディタ
  • プログラミング言語(の実行環境)

エディタを用意する

エディタは「VS Code(ブイエス・コード)」や「SublimeText3(サブライム・テキスト・スリー)」、あるいはWindows標準のメモ帳でもかまいません。
ソースコードを書くためのエディタは、これじゃないと駄目だ! というのはありません。
開発者が自分の好みで選ぶことになります。

最近は「VS Code」というマイクロソフトのエディタが人気がありますが、個人的には「SublimeText3」をおすすめしたいです。
ただSublimeText3は有料ソフトで、無料版だと制限があるので使う人を選ぶかもしれません。

ほかにも「サクラエディタ」や「EmEditor(エム・エディター)」などいろいろエディタがあります。

プログラミング言語を学ぶ

エディタを用意したらプログラミン言語をどれか1つ選んで学ぶ必要があります。
プログラミング言語はほんとうにたくさんあります。
まず代表的なコンパイラ型の言語は↓があります。

  • C言語
  • C++
  • Rust
  • Java
  • Go

さいきん人気が出てきているのがRustです。
速度的にも非常に速い言語で、現在はC++をしのぐほどです。

インタプリタ型の言語には↓があります。

  • Ruby
  • Python
  • PHP
  • JavaScript

Ruby(ルビー)は国産のインタプリタ型の言語で、世界的にシェアがあります。
またPython(パイソン)も人気があります。このブログもPythonで作られています。

おわりに

今回はプログラミングにおけるソースコードについて解説しました。
ソースコードはプログラミングでは非常によく出てくるワードです。
プログラマーの人の会話を見ると自然と「ソースコード、ソースコード」と言っていて、もはや日常会話レベルです。
この記事でソースコードについて理解していただけると幸いです。

🦝 < ソースコードを読んでハッカーになろう