Based on evolution history, programming languages are divided into these three broad categories, they are as follows,
1. Machine Language:
Machine Language consists of 1s and 0s only. These are hard to use. Machine languages are called the first generation languages. A machine can understand these languages. There is not translator of these languages as there is no need to translate these languages. Machine languages are defined by hardware design. In other words, machine language for Macintosh computer is not the same for a Pentium PC. In fact, the languages of various Pentium versions are also different. A computer understand only its native language.
2. Assembly Language:
Assembly languages consist of short English-like abbreviations. These are easy to use than machine languages . Assembly languages are called the second generation language. Machine can understand these languages if it has been converted to machine code. Translator of assembly languages is called assembler. Each line of assemble code gets converted into one line of machine code. In these languages programmer uses various symbols and structures These languages are often used to fine tune part of a program written in higher level language.
3. High Level Language:
Higher level languages consist of English words which are familiar to human, These are much easier than assembly languages. Higher level languages are called the third generation languages. Machine also can understand these languages, if it has been converted into machine code. There are various translators of those languages, One line of higher level language code gets converted into many lines of machine code. In these languages, programmers use various signs such as plus and minus signs and structures. These languages became more popular to write programs.