コンピュータはもともと0と1だけの計算する機械であり、人類はそれがさまざまな役割を果たすように発展させてきました。その結果、数多くのプログラミング言語が誕生し、4つの層を形成しています。層というのは役割であり、もっとも下の層がマシン語つまり機械語です。0と1の羅列であり、普通の人間が理解するのは困難です。なぜこれが機能するのかというとIntelやAMDの技術者が、しっかり機能するようにCPUを設計しているからです。

マシン語にもっとも近いもの、これをアセンブリ言語やアセンブラといいます。機械語と1対1に対応しており、後述する高級言語を機械語に翻訳する役割を果たしています。この工程をアセンブルといい、直訳すると組立となります。プログラマーの中でもごく一部しかアセンブラは理解していません。プログラミングの学校でも、これを教えているところは少ないです。

アセンブラのひとつ上の層が高水準言語です。1950年代に誕生したFortranが先駆けであり、人間が情報で立つに使用する言葉に近づきました。そのおかげで多くのプログラマーが活躍し、便利な社会が機能しているのです。現在も使用されているものとしてはCが挙げられます。名前は既に存在していたBの改良版という意味で付けられました。現在使用されているものの中でも中心的な存在であり、軽さも魅力です。現在活躍する中堅以上のコンピューター技術者の多くはCを最初に覚えたでしょう。ランゲージ間の違いを説明するとき、ひとつの基準として使われることも珍しくありません。

一番上の層は第4世代と言われ、JavaやPHPがこれに該当します。非手続き型とオブジェクト指向、軽量の3種類に大別できます。非手続き型は処理を記述順に行わないものです。データベースの操作などに活用されています。オブジェクト指向は第4世代の中でも主流であり、現在の初心者はこれから学び始める人も多いでしょう。JavaやPythonなどがこれであり、ポリモーフィズムやカプセル化などの特徴があります。その説明は割愛しますが、それによりソフトウェア開発に便利です。その特徴から多くの場面で活躍しています。軽量なものは学習用のものやHTMLに代表されるマークアップ用のものです。マークアップとは表示するために印を付けることであり、具体的な処理を記述するものではありません。学習用言語はソフトウェア開発などには機能が足りませんが、ストレスなく使えることが魅力です。