機械語、アセンブラ、高水準言語、第4世代言語、非手続き型言語、SQL、スクリプト言語、Java
プログラミング言語の発展は,コンピュータの動作に依存した言語から人間の発想に近い言語への発展であるといえます。

第1世代言語 機械語(0と1の羅列)
第2世代言語 アセンブラ(機械語を記号化)
第3世代言語 コンパイラ:手続き型言語,高水準言語(COBOL,Cなど)
第4世代言語 非手続き型言語(SQLなど)
最近の動向 オブジェクト指向言語(C++,Javaなど)
スクリプト言語(JavaScriptなど)
たとえば,メモリのA4番地にあるデータの値(X=13)とA5番地にあるデータの値(Y=27)を,演算装置のアキュムレータAとBに入れて加算し,その結果をメモリのA6番地(Z)に入れるプログラムは次のような数字(16進表示)の羅列になります。これを機械語といいます。
11A412A5410221A630A70D1B00
区切りをつければ,
9F 11,A4 メモリA4番地の値→アキュムレータA A0 12,A5 メモリA5番地の値→アキュムレータB A1 41,02 A+B→A A2 21,A6 Aの値→メモリA6番地 A3 30,A7 次の命令はA7番地から A4 0D 10進数13の16進数 A5 1B 10進数27の16進数 A6 00 結果を入れる場所を確保 A7 --
機械語を覚えるのは大変です。それで,たとえばメモリからアキュムレータに入れる命令をLD,アキュムレータ間での加算命令41をADというように記号化すれば,かなりわかりやすくなります。このような言語をアセンブラといいます。
LD A,X メモリX番地の値→アキュムレータA LD B,Y メモリX番地の値→アキュムレータA AD A,B A+B→A SV A,Z A→メモリZ番地 J P 次にフラグPの命令を行う X DT 13 Xの値を13とする(10進数表示) Y DT 27 Y←27 Z DT 0 P ---
もっと人間に理解しやすくすることが求められます。その要求に応えて,
Z=X+Y (FORTRAN)
ADD Y TO X GIVING Z. (COBOL)
のように,数学的な表現や英語表現で記述できる言語が多数出現しました。これらを高水準言語といいます。高水準言語とは,広義には機械語・アセンブラ以外の言語の総称ですが,狭義には第3世代言語だけを指すこともあります。
高水準言語では,機械語やアセンブラと異なりコンピュータの機種に依存しない形式になりますので,言語文法のレベルでは多くの機種で共通に用いることができます。また,共通にするために,いくつかの言語では文法仕様の標準規格化も進みました。