< language > (4GL) An "application specific" language, one with built-in knowledge of an application domain, in the way that SQL has built-in knowledge of the database domain. Pure 4GLs do not contain conditionals (if-then-else) and loops (for, while, do), though some languages are combinations of third generation languages and 4GLs.
The term was invented by Jim Martin to refer to non-procedural high level languages built around database systems. The first three generations were developed fairly quickly, but it was still frustrating, slow, and error prone to program computers, leading to the first "programming crisis", in which the amount of work that might be assigned to programmers greatly exceeded the amount of programmer time available to do it. Meanwhile, a lot of experience was gathered in certain areas, and it became clear that certain applications could be generalised by adding limited programming languages to them. Thus were born report generator languages, which were fed a description of the data format and the report to generate and turned that into a COBOL (or other language) program which actually contained the commands to read and process the data and place the results on the page.
Some other successful 4th-generation languages are: database query languages , e.g. SQL ; Focus , Metafont , PostScript , RPG-II , S , IDL-PV/WAVE , Gauss , Mathematica ; and data-stream languages such as AVS , APE , Iris Explorer .