今回は,プログラミングの具体的な形である,プログラミング言語について話をします。
すべてを説明すると書籍になってしまうので,ここでは,抽象的な内容だけを紹介することにします。
プログラミング言語とは何か
コンピューターの中核を構成するものは,与える命令を格納するメモリと,与えられた命令を実行するプロセッサです。キーボードやディスプレイなどの周辺機器もありますが,今回は本質的な要素にならないので省略します。
コンピューターは,与えられた命令を順番に実行していきます。
その命令は,コンピューターに理解できる形で行わなければならず,人間が理解することは難しい形になっています。昔のコンピューターであれば,動作を完璧に把握して,自由自在に操ることのできる人もいたそうですが,最近のコンピューターは極めて複雑なので,人間がすることではなくなっているように思われます。
そのため,コンピューターと人間をつなぐものとして,プログラミング言語が存在しています(だと考えています)。
プログラミング言語は,コンピューターに対する命令を,人間が分かりやすい形に置き換えたものと言えるでしょう。もちろん,誰でも理解できるものではなく,専門の勉強をした人にしか理解できないものですけれども。
いつか,技術革新が進み,誰でも理解できる,自然言語のようなプログラミング言語が現れるかもしれませんね。それは,日常会話でロボットを制御する技術なのかもしれません。
基本的な概念
世の中には多数のプログラミング言語が存在します。
ここでは,ほぼすべての言語に共通する概念を,少しだけ取り上げることにします。
制御構造
プログラムは,与えられた命令を順々に実行していくだけです。
次に実行する命令を気分によって決めたり,サイコロを振って決めるということはありません。必ず,最初の命令から順番に実行されていきます。
しかし,それだけでは,どんな場合にも同じ動作しかできません。また,命令がとても長くなってしまう可能性もあります。
そこで,「条件分岐」と「繰り返し」という概念が使われています。
条件分岐とは,指定した条件が満たされるときに実行される命令と,満たされないときに実行される命令に分けることです。
繰り返しとは,指定した条件が満たされるまで,一定の命令を繰り返して実行することです。
これらをうまく組み合わせることで,いろいろな場合に対応した処理を行うことができるようになります。
変数操作
プログラムは,様々な「値」を操作して,求める結果を算出します。
それら「値」を収めておく場所は,変数と呼ばれています。
プログラムは,変数に対して,四則演算をしたり,値を書き換えたりしていきます。また,それらの変数を参照して,条件分岐をしたり,繰り返しを行ったりしています。
高度な概念
いま使われているプログラミング言語は,ほとんどがオブジェクト指向を取り入れています。
これは,プログラムの構成要素を,特定の機能を持ったパーツに見立てる手法です。
そのように構造を捉えると,多人数でプログラムを作成するときなど,作業分担がしやすくなり,仕事をしやすくなると考えられています。