Slide 1.4: Programming language generations
Slide 1.6: Why learn assembly languages
Home

Programming Language Generations (Cont.)


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.