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.

Review: Programming Language Generations
    Which statement is NOT true?

      Each assembly-language statement corresponds to one machine-language instruction.
      Each type of CPU has its own machine and assembly languages.
      For SQL, the programmers tell the computers what to do, but not how to do it.
      The 5th generation languages successfully solved the software crisis.
Result: