3rd Generation (High-Level Languages such as C, C++, and Pascal, 1950s)
It provides some level of abstraction above assembly language.
These normally use statements consisting of English-like keywords such as “FOR,” “PRINT,” or “GOTO,” where each statement corresponds to several machine/assembly language instructions, whereas each assembly-language statement corresponds to one machine-language instruction.
It is much easier to program in a high-level language than in assembly language.
For example, assume that X
and Y
are integers.
X = (Y + 4) × 3;
This command could be translated to the following assembly commands:
mov eax, Y ; move Y to the EAX register
add eax, 4 ; add 4 to the EAX register
mov ebx, 3 ; move 3 to the EBX register
imul ebx ; multiply EAX by EBX
mov X, eax ; move EAX to X
4th Generation (Application-Specific Languages such as SQL, Cobol, and Prolog, 1950s)
The term refers to non-procedural high-level languages built around database systems.
For this kind of languages, the programmers tell the computers what to do, but not how to do it.
For example, a typical 4GL command is
FIND ALL RECORDS WHERE NAME IS "SMITH"
5th Generation (1980s)
A myth the Japanese spent a lot of money on.
In about 1982, METI (Ministry of Economy, Trade, and Industry) of Japan decided it would spend ten years and a lot of money applying artificial intelligence to programming, thus solving the software crisis.
The project spent its money and its ten years and in 1992 closed down.