プログラミングとは何なのかということについてざっくり話をしているページです。(一部用語の説明をわかりやすくするため、細かい違いのある部分もあります。厳密な定義などは専門書やインターネットでご確認ください。)
プログラミングという言葉には、どことなく難しそうでとっつきにくい響きがあります。しかし、簡単に言ってしまえば「アプリを作る」ということです。もっと具体的に言えばゲームやツールを作ってしまうということです。しかし、普段何気なく口にしている、あるいは耳にしている「アプリ」や「ソフト」、「プログラム」と言った言葉は、一体何を指しているのでしょうか。
「コンピュータは偉大なるバカである」という言葉があります。コンピュータはいちいち使う人間の側が指示を出さなければ何もできません。しかも、コンピュータは電子回路ですから、出せる指示も出し方も細かく決められている上、それらはすべて数値でできています。出せる指示の最小単位を「命令」、コンピュータが直接理解できるこの数値のことを「機械語」といいます。
しかし、人間が一つ一つ順番に命令を出していくのは大変面倒な作業です。そこで、その命令をひとまとめにして一つの命令書として一度にコンピュータに読ませてしまおう、とういうアイディアが出て来ました。この命令書が「プログラム」です。また、何か一つの処理をまとめて塊にしたものを「ソフトウェア」略してソフトと呼びます。
ところが、ソフトウェアを作るためには、コンピュータの回路の仕組みや機械語を熟知していなければなりません。これはプログラマ(プログラムを作る人)にとっては非常に大変な作業です。そこで、そういう難しいことは考えなくても良いように、基本のソフトというものが開発されました。これが「オペレーティングシステム」、いわゆるOSと呼ばれているものです。
これなら、コンピュータに入っているOSの機能を当てにして、簡単にソフトを作ることが出来ます。このOSの上で動くソフトの事を「アプリケーションソフトウェア」略してアプリケーション、アプリなどとも呼びます。
しかし、いくら簡単になったとはいえ、コンピュータへの指示は、やはり機械語でしなければなりません。OSの機能を使用する時も同様です。その機械語の数値をずっと並べて書いていくのは、非常に骨の折れる作業です。それを改善するために、まず「アセンブリ言語」というものが作られました。数値とはいえパソコンへの命令ですから、例えば「14はメモリから情報を読み込む」のように意味があります。なので、その意味に対応させて命令にMOVやJMP、HLTなどの名前を付けました。これを並べて描いておく仕組みです。これを別のプログラムで命令から数値に置き換えて、プログラムにします。この作業を「アセンブルする」といい、その作業をするプログラムを「アセンブラ」といいます。(最近は何故か「アセンブラ言語」という名称が一般的なようです。)
しかし、正直これでもわかりにくいです。例えば「10×(1+1)÷2」を計算させたいときは、MOV、ADD、MUL、DIVといった命令を駆使します。非常に面倒です。数式でかけたらどんなに楽か。また、計算結果を記録する時も、メモリのどこに記録するかを数値で番地指定のようにしなければなりません(メモリの100番地に32を記録、など)。非常にわかりにくいです。
そこで、さらにそれを解り易くしたものが開発されました。これが「高級言語」と呼ばれるもので、CやC++などが代表的です。ここまできてようやく大きなプログラムを作るのに十分なレベルに解り易くなりました。「10×(1+1)÷2」は{10*(1+1)/2}と書くことが出来ます。変数というものが使えるようになったので、プログラムを作る側はメモリの何番地がどうこうなんて面倒な事を考えなくて済むようになりました。この言語を機械語に直す作業を「コンパイル」、その作業をするプログラムを「コンパイラ」と呼んでいます。
これらプログラミングに使用するアセンブリ言語、高級言語などを総称して「プログラミング言語」と呼んでいます。これらは別のプログラムによって機械語に翻訳されるので、それなりにちゃんとした決まりがあって、その通り書くことで指示通り動くプログラムが作れます。この決まりの事をその言語の「文法」と呼びます。
このように、アプリを開発するためには、専用のプログラムが必要です。また、アプリケーションはOSの機能を使ったりもするので、そのためのデータなども必要になります。このようなプログラミングに必要なものがワンセットになっているものを「開発環境」と呼びます。
また、プログラミング言語で書かれたテキストの状態のプログラムを「ソースコード」と呼びます。「プログラミング」とは「プログラムをつくること」ですが、具体的には目的通り動くソースコードを書き上げる事が中心となっています。ソースコードを作る作業の事を「コーディング」とも呼びます。一度コーディングされたプログラムは、まだ間違い=「バグ」があるかも知れないので、コンパイルと実行を行って動作のテストをします。もし思うように動かなかったりエラーが出たりしたらソースコードを修正します。これを「デバッグ」と言います。