Afourth-generation programming language (4GL) is ahigh-levelcomputerprogramming language that belongs to a class of languages envisioned as an advancement uponthird-generation programming languages (3GL). Each of theprogramming language generations aims to provide a higher level ofabstraction of the internalcomputer hardware details, making the language moreprogrammer-friendly, powerful, and versatile. While the definition of 4GL has changed over time, it can be typified by operating more with large collections of information at once rather than focusing on justbits andbytes. Languages claimed to be 4GL may include support fordatabase management,report generation,mathematical optimization,graphical user interface (GUI)development, orweb development. Some researchers state that 4GLs are a subset ofdomain-specific languages.[1][2]
The concept of 4GL was developed from the 1970s through the 1990s, overlapping most of the development of 3GL, with 4GLs identified as "non-procedural" or "program-generating" languages, contrasted with 3GLs being algorithmic or procedural languages. While 3GLs likeC,C++,C#,Java, andJavaScript remain popular for a wide variety of uses, 4GLs as originally defined found uses focused on databases, reports, and websites.[3] Some advanced 3GLs likePython,Ruby, andPerl combine some 4GL abilities within a general-purpose 3GL environment,[4] andlibraries with 4GL-like features have been developed as add-ons for most popular 3GLs, producing languages that are a mix of 3GL and 4GL, blurring the distinction.[5]
In the 1980s and 1990s, there were efforts to developfifth-generation programming languages (5GL).
Though used earlier in papers and discussions, the term 4GL was first used formally byJames Martin in his 1981 bookApplication Development Without Programmers[6] to refer to non-procedural, high-levelspecification languages. In some primitive way, early 4GLs were included in theInformaticsMARK-IV (1967) product andSperry'sMAPPER (1969 internal use, 1979 release).
The motivations for the '4GL' inception and continued interest are several. The term can apply to a large set of software products. It can also apply to an approach that looks for greatersemantic properties and implementation power. Just as the 3GL offered greater power to the programmer, so too did the 4GL open up the development environment to a wider population.
The early input scheme for the 4GL supported entry of data within the 72-character limit of thepunched card (8 bytes used for sequencing) where a card's tag would identify the type or function. With judicious use of a few cards, the4GL deck could offer a wide variety of processing and reporting capability whereas the equivalent functionality coded in a3GL could subsume, perhaps, a whole box or more ofcards.[7]
The 72-character formatcontinued for a while as hardware progressed to larger memory and terminal interfaces. Even with its limitations, this approach supported highly sophisticated applications.
As interfaces improved and allowed longer statement lengths and grammar-driven input handling, greater power ensued. An example of this is described on theNomad page.
The development of the 4GL was influenced by several factors, with the hardware and operating system constraints having a large weight. When the 4GL was first introduced, a disparate mix of hardware and operating systems mandated custom application development support that was specific to the system in order to ensure sales. One example is theMAPPER system developed bySperry. Though it has roots back to the beginning, the system has proven successful in many applications and has been ported to modern platforms. The latest variant is embedded in the BIS[8] offering ofUnisys.MARK-IV is now known as VISION:BUILDER and is offered byComputer Associates.
The Santa Fe railroad usedMAPPER to develop a system in a project that was an early example of 4GL,rapid prototyping, andprogramming by users.[9] The idea was that it was easier to teach railroad experts to useMAPPER than to teach programmers the "intricacies of railroad operations".[10]
One of the early (and portable) languages that had 4GL properties wasRAMIS developed by Gerald C. Cohen atMathematica, a mathematical software company. Cohen left Mathematica and founded Information Builders to create a similar reporting-oriented 4GL, calledFOCUS.
Later 4GL types are tied to a database system and are far different from the earlier types in their use of techniques and resources that have resulted from the general improvement of computing with time.
An interesting twist to the 4GL scene is realization that graphical interfaces and therelated reasoning done by the user form a 'language' that is poorly understood.
A number of different types of 4GLs exist:
Some 4GLs have integrated tools that allow for the easy specification of all the required information:
In the twenty-first century, 4GL systems have emerged as"low code" environments or platforms for the problem of rapid application development in short periods of time. Vendors often provide sample systems such as CRM, contract management, bug tracking from which development can occur with little programming.[11]
Extract data from files or database to create reports in a wide range of formats is done by the report generator tools.