In the programming language world, there are a number of 'generations' that describe the nature of the language. They all co-exist today and it does not mean that one generation is superior to an earlier generation.
Each 'generation' effectively becomes more abstract and less dependent on the actual hardware that runs the code.
1st generation (1GL) is a fundamental machine-level language. This is the binary code that runs within a CPU. Each CPU has its own instruction set.
2nd generation (2GL) is a slightly more human-friendly way of programming a CPU. For example, assembly language is a 2GL, having mnemonic instruction such as MOV A, #23
3rd generation (3GL) begins to make use of useful data structures such as arrays and program flow commands such as IF ... THEN statements. Much easier to write code in 3GL than 1GL. Example languages include 'C', C++, BASIC
4th generation (4GL) are even more abstract than 3GL languages. They are 'system' level languages where a single command or graphical item can carry out an underlying complex procedure. For example the simulation language 'Simulink' from Mathworks can model complex systems without requiring the fine details of a 3GL language. You simply drag and drop pre-programmed modules or custom modules into the application to make up a complete system.
Note that all generations eventually have to create binary code to run within a CPU.
Challenge see if you can find out one extra fact on this topic that we haven't already told you
Click on this link: Generation