Fourth-generation programming language
From Free net encyclopedia
A fourth-generation programming language (abbreviated 4GL) is a programming language designed with a specific purpose in mind, such as the development of commercial business software. Such languages arose after the introduction of modern, block-structured third-generation programming languages, which improved the process of software development. However, 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 first used by James Martin in his 1982 book Applications Development Without Programmers to refer to non-procedural, high-level specification languages. Nevertheless, the great majority of 4GL users would describe themselves as programmers and most 4GLs allowed for (or required) system logic to be written in a proprietary macro language or a 3GL.
All 4GLs are designed to reduce programming effort, the time it takes to develop software, and the cost of software development. They are not always successful in this task, sometimes resulting 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.
- 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:
- James Martin's own Information Engineering systems development methodology was automated to allow the input of the results of system analysis and design in the form of data flow diagrams, entity relationship diagrams, entity life history diagrams etc from which hundreds of thousands of lines of COBOL would be generated overnight.
- More recently Oracle Corporation's Oracle Designer and Oracle Developer 4GL products could be integrated to produce database definitions and the forms and reports programs.
Fourth-generation languages have often been compared to Domain-specific programming languages (DSLs). Some researchers state that 4GLs are a sub-set of DSLs. [1]
Some successful fourth-generation languages
- Database query languages
- FOCUS
- Oracle PL/SQL
- NATURAL
- Progress 4GL
- SQL
- Report generators
- BuildProfessional
- GEMBase
- IDL-PV/WAVE
- LINC
- Metafont
- NATURAL
- Oracle Reports
- PostScript
- RPG-II
- S
- Gauss
- Mathematica
- Data manipulation, analysis, and reporting languages
- Data-stream languages
- APE
- AVS
- Iris Explorer
- Screen painters and generators
- Oracle Forms
- Unify Accell
- GUI creators
See also
- first-generation programming language
- second-generation programming language
- third-generation programming language
- fifth-generation programming language
- Domain-specific programming language
External links
- Fourth Generation Environments
- 4GL GPL/GNU OpenSource development tools project
- Domain-Specific Languages for Software Engineering (Compares 4GLs to DSLs)
- This article was originally based on material from the Free On-line Dictionary of Computing, which is licensed under the GFDL.