 languages are conventionally divided into five gener- ations: The fifth generation includes languages which are declarative rather than imperative; they specify the nature of the required solutions rather than the instructions which have to be followed to reach that 25.6.1.1 First generation solution. The best known language in this class is Prolog (Colmerauer, Early computers were programmed by directly entering the machine 1983). A Prolog program consists of a series of logical assertions. code. The program was written as a sequence of bits, perhaps expressed in octal (base 8) or hexadecimal (base 16) notation. Code 25.6.2 High level languages in such a notation would now be applied only as a patch (the software equivalent of cuts and straps, with all the same dangers and The term 'high level language' is still often used to refer to lan- more) and even then rarely. guages of the third generation. Some of the more widely used of these are the following. 25.6.1.2 Second generation 25.6.2.1 Pascal The second generation allowed for a symbolic representation of the Pascal was designed by Wirth in 1968 as a tool to support the machine code. So, for example, the machine code to load a value teaching of programming, and for a time it remained as no more than from some memory location into a register might consist of: an educational aid. Eventually commercial compilers began to be introduced first for micro computers and then for larger machines. 1. 8 bits representing the code for the load instruction. An ISO standard version of Pascal became available in 1982. 2. 4 bits giving the number (0 to 15) of the register to be loaded. Pascal has been very influential. Among its features, which also 4 bits giving the number (1) to 15) of an index register which appear in its descendants, are: addresses the area of memory in which the value resides. 16 bits giving the displacement from the location addressed by Type definition the index register of the memory location in which the value required is to be found. In Pascal ever