0-1-2:プログラミング言語の歴史


・ CPUを直接コントロールするための言語を「マシン語」あるいは 「アセンブリ言語」と呼びます。 マシン語とアセンブリ言語の違いは、前者がメモリ上にロードされる 2進数のデータそのものであるのに対して、後者はそれを人間がテキストとして 読める形式になっている点です。アセンブリ言語からマシン語への変換は 「アセンブラ」と呼ばれるソフトウェアで行います。
アセンブリ言語はプログラムの命令の内容としてはマシン語と同一です。 CPUの能力を最大限に引き出すための細かい調整が可能ですが、 その一方でプログラム開発の手間は膨大になります。 プログラムが正しく動作するためには細かい部分まで神経を使う必要があります。 また、エラーが発生した場合の原因を探す作業も大変です。

・ こうした欠点を補うために、プログラムを人間にとって読みやすいものに する試みが行われたのは当然かもしれません。 それらの言語では、直接アセンブリ言語で記述するのではなく、 いったん人間にわかりやすい言葉で書かれたプログラムを、 「インタープリタ」もしくは 「コンパイラ」と呼ばれるソフトウェアでマシン語に変換します。 このようなタイプの言語を「高級言語」と呼びます。 昔からある BASIC,COBOL,FORTRAN、あるいは C,C++,Javaなど、 主要なプログラム言語の多くはこうしたタイプの高級言語です。

・ 「インタープリタ」と「コンパイラ」の違いは、 マシン語への変換をいつ行うかという点です。 BASICなどのインタープリタ言語は実行時にマシン語への変換を行いながら プログラムの処理を進めます。 COBOL,FORTRAN,C,C++の場合は実行の前にコンパイラによって、 プログラム全体をマシン語に変換します。
Javaは実は両方の性質を持っています。 プログラムをコンパイルする作業は存在しますが、それらは 真のマシン語のコードではなく「仮想マシン」と呼ばれる一種の インタープリタによって実行時に処理されるからです。

・ 同じ高級言語の中でも、時代によってプログラミングの考え方が少しずつ 変化してきています。 「人間によりわかりやすく」逆に言えば「コンピュータの内部構造とは関係なく」 プログラムを作るという方向に向かっています。 そうした流れの中で生まれてきたのが、いわゆる「オブジェクト指向」という 考え方です。 この講義では Javaを通じてオブジェクト指向の意味についても解説していきます。