Supported by languages such as SQL, where you write statements that describe the problem to be solved, and the language implementation decides the best way of solving it
Different types of problem require different types of language, and hundreds of different languages have been developed for different types of application
Assembly language was the first language to be developed after machine code, and the next step was the development of procedural languages in the 1900s