Computer Programming Generations



First Generation

Machine language, hard-wired instructions, numeric instructions and addresses, machine-dependent programming.


            11100101
            11110000
            11001101
            

Second Generation

Symbolic instructions and addresses, translation of program with an assembler, machine-dependent programming. Typical languages: IBM BAL, VAX Macro.


            calc:   decL R5
                    pushL R5
                    calls #1, recfib
                    movL R0, R6
                    decL R5
                    pushL R5
                    calls #1, recfib
                    addL R6, R0
                    ret
            .end

Third Generation (3GL):

Problem-oriented languages, translation with compilers or interpreters, structured programming, database management systems. Typical languages: COBOL, FORTRAN, Pascal, Ada, C, BASIC, PL/I.

Fourth Generation (4GL):

non-procedural languages, integrated data dictionaries, dynamic relational databases; makes possible rapid system development and prototyping. Typical: FOCUS, Powerhouse.


    access admissions
    set report device printer
    set report device disc
    set report name AD32
    select if term = "961" and (app-status="AC" or app-status="PP")
    sort on ad-source on name
    report id name ad-source class hs-code entrance-code app-status
    footing at ad-source skip 2 "Total for: " ad-source "=" count skip 3
    final footing "Total enrollment " count
    set report nolimit
    go

The Next Generations?

The evolution of programming languages and software development tools has not ended with the 4th Generation. It has been suggested that Object-Oriented programming represents a new generation of tools. Object-oriented development is based on the use of "objects" that represent both the data structures and the processes that can act on the data. A major strength of such objects is that once they are defined they can be used over and over again, thus reducing the effort needed to develop systems.

Later generations of program development tools may look less and less like "languages" in the traditional sense of instructions written in text that must conform to a specific grammar or syntax.