A fourth-generation programming language (or 4GL) is a programming language designed with a specific purpose in mind such as the development of commercial business software.
The process of software development had been much improved with modern block structured third-generation programming languages but it was still frustrating, slow, and error prone to program computers. This led 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 generalized by adding limited programming languages to them.
The term 4GL was according to James Martin first used in his 1982 book Applications Development Without Programmers to refer to non-procedural high-level specification languages. Nevertheless, the great majority of users of 4GLs would describe themselves as programmers and most 4GLs allowed for (or required) system logic to be written in a proprietary macro language or in a 3GL.
All 4GLs are designed to reduce:
- programming effort.
- the time it takes to develop software.
- the cost of software development.
They are not always successful in this task and sometimes result in inelegant and unmaintainable code. However, given the right problem the use of an appropriate 4GL can be spectacularly successful.
A number of different types of 4GLs exist:
- Report generators take a description of the data format and the report to generate and from that they either generate the required report directly or they generate a program to generate the report.
- Similarly forms generators manage online interactions with the application system users or generate programs to do so.
- The more ambitious 4GLs (sometimes termed fourth generation environments) attempt to automatically generate whole systems from the outputs of CASE tools, specifications of screens and reports, and possibly also the specification of some additional processing logic.
Some 4GLs have integrated tools which allow for the easy specification of all the required information. Examples include:
Some successful 4th-generation languages are:
- Database query languages:
- Oracle SQL*Plus
- Progress 4GL
- Report Generators:
- Data manipulation, analysis, and reporting languages:
- Data-stream languages such as
- Screen painters and generators
- Fourth Generation Environments (http://www.soi.city.ac.uk/~tony/dbms/4ges.html)
This article was originally based on material from the Free On-line Dictionary of Computing, which is licensed under the GFDL.