HOME

TheInfoList



OR:

A fourth-generation programming language (4GL) is any
computer A computer is a machine that can be programmed to carry out sequences of arithmetic or logical operations ( computation) automatically. Modern digital electronic computers can perform generic sets of operations known as programs. These prog ...
programming language A programming language is a system of notation for writing computer programs. Most programming languages are text-based formal languages, but they may also be graphical. They are a kind of computer language. The description of a programming ...
that belongs to a class of languages envisioned as an advancement upon third-generation programming languages (3GL). Each of the
programming language generations Programming languages have been classified into several programming language generations. Historically, this classification was used to indicate increasing power of programming styles. Later writers have somewhat redefined the meanings as distin ...
aims to provide a higher level of abstraction of the internal computer hardware details, making the language more programmer-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 just bits and
byte The byte is a unit of digital information that most commonly consists of eight bits. Historically, the byte was the number of bits used to encode a single character of text in a computer and for this reason it is the smallest addressable uni ...
s. Languages claimed to be 4GL may include support for
database In computing, a database is an organized collection of data stored and accessed electronically. Small databases can be stored on a file system, while large databases are hosted on computer clusters or cloud storage. The design of databases ...
management,
report generation A report is a document that presents information in an organized format for a specific audience and purpose. Although summaries of reports may be delivered orally, complete reports are almost always in the form of written documents. Usage In ...
, mathematical optimization, GUI development, or web development. Some researchers state that 4GLs are a subset of domain-specific languages. 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 like C, C++, C#,
Java Java (; id, Jawa, ; jv, ꦗꦮ; su, ) is one of the Greater Sunda Islands in Indonesia. It is bordered by the Indian Ocean to the south and the Java Sea to the north. With a population of 151.6 million people, Java is the world's mo ...
, and
JavaScript JavaScript (), often abbreviated as JS, is a programming language that is one of the core technologies of the World Wide Web, alongside HTML and CSS. As of 2022, 98% of websites use JavaScript on the client side for webpage behavior, of ...
remain popular for a wide variety of uses, 4GLs as originally defined found uses focused on databases, reports, and websites. Some advanced 3GLs like Python,
Ruby A ruby is a pinkish red to blood-red colored gemstone, a variety of the mineral corundum ( aluminium oxide). Ruby is one of the most popular traditional jewelry gems and is very durable. Other varieties of gem-quality corundum are called ...
, and
Perl Perl is a family of two high-level, general-purpose, interpreted, dynamic programming languages. "Perl" refers to Perl 5, but from 2000 to 2019 it also referred to its redesigned "sister language", Perl 6, before the latter's name was offic ...
combine some 4GL abilities within a general-purpose 3GL environment, and libraries 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. In the 1980s and 1990s, there were efforts to develop fifth-generation programming languages (5GL).


History

Though used earlier in papers and discussions, the term 4GL was first used formally by James Martin in his 1981 book ''Applications Development Without Programmers'' to refer to non-procedural, high-level specification languages. In some primitive way, early 4GLs were included in the Informatics MARK-IV (1967) product and
Sperry Sperry may refer to: Places In the United States: * Sperry, Iowa, community in Des Moines County *Sperry, Missouri * Sperry, Oklahoma, town in Tulsa County *Sperry Chalet, historic backcountry chalet, Glacier National Park, Montana *Sperry Glacier ...
's MAPPER (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 greater semantic 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 the punched card (8 bytes used for sequencing) where a card's tag would identify the type or function. With judicious use of a few cards, the 4GL deck could offer a wide variety of processing and reporting capability whereas the equivalent functionality coded in a 3GL could subsume, perhaps, a whole box or more of cards. The 72-character format continued 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 the
Nomad A nomad is a member of a community without fixed habitation who regularly moves to and from the same areas. Such groups include hunter-gatherers, pastoral nomads (owning livestock), tinkers and trader nomads. In the twentieth century, the po ...
page. ::Another example of Nomad's power is illustrated by Nicholas Rawlings in his comments for the Computer History Museum about NCSS (see citation below). He reports that James Martin asked Rawlings for a Nomad solution to a standard problem Martin called the ''Engineer's Problem'': "give 6% raises to engineers whose job ratings had an average of 7 or better." Martin provided a "dozen pages of COBOL, and then just a page or two of Mark IV, from Informatics." Rawlings offered the following single statement, performing a set-at-a-time operation... 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 the MAPPER system developed by
Sperry Sperry may refer to: Places In the United States: * Sperry, Iowa, community in Des Moines County *Sperry, Missouri * Sperry, Oklahoma, town in Tulsa County *Sperry Chalet, historic backcountry chalet, Glacier National Park, Montana *Sperry Glacier ...
. 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 offering of Unisys. MARK-IV is now known as VISION:BUILDER and is offered by Computer Associates. Santa Fe railroad used MAPPER to develop a system, in a project that was an early example of 4GL, rapid prototyping, and programming by users. The idea was that it was easier to teach railroad experts to use MAPPER than to teach programmers the "intricacies of railroad operations". One of the early (and portable) languages that had 4GL properties was
Ramis RAMIS ("Random Access Management Information System") is a fourth-generation programming language (4GL) capable of creating and maintaining databases consisting of named files containing both numeric and alphabetic fields and subsequently producing ...
developed by Gerald C. Cohen at Mathematica, a mathematical software company. Cohen left Mathematica and founded Information Builders to create a similar reporting-oriented 4GL, called FOCUS. 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 the related reasoning done by the user form a 'language' that is poorly understood.


Types

A number of different types of 4GLs exist: * Table-driven (codeless) programming, usually running with a runtime framework and libraries. Instead of using code, the developer defines their logic by selecting an operation in a pre-defined list of memory or data table manipulation commands. In other words, instead of coding, the developer uses table-driven algorithm programming (see also
control table Control tables are tables that control the control flow or play a major part in program control. There are no rigid rules about the structure or content of a control table—its qualifying attribute is its ability to direct control flow in some wa ...
s that can be used for this purpose). A good example of this type of 4GL language is PowerBuilder. These types of tools can be used for business application development usually consisting in a package allowing for both business data manipulation and reporting, therefore they come with GUI screens and report editors. They usually offer integration with lower level DLLs generated from a typical 3GL for when the need arise for more hardware/OS specific operations. * Report-generator programming languages 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. See also RPG *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 Case or CASE may refer to: Containers * Case (goods), a package of related merchandise * Cartridge case or casing, a firearm cartridge component * Bookcase, a piece of furniture used to store books * Briefcase or attaché case, a narrow box to ca ...
tools, specifications of screens and reports, and possibly also the specification of some additional processing logic. * Data management 4GLs such as SAS,
SPSS SPSS Statistics is a statistical software suite developed by IBM for data management, advanced analytics, multivariate analysis, business intelligence, and criminal investigation. Long produced by SPSS Inc., it was acquired by IBM in 2009. C ...
, and
Stata Stata (, , alternatively , occasionally stylized as STATA) is a general-purpose statistical software package developed by StataCorp for data manipulation, visualization, statistics, and automated reporting. It is used by researchers in many fie ...
provide sophisticated coding commands for data manipulation, file reshaping, case selection, and data documentation in the preparation of data for statistical analysis and reporting. *So-called "XTalk" languages, developed initially with Apple's Hypercard in 1987. Hypercard was the progenitor of more modern and powerful programs such as SuperCard, Toolbook and LiveCode. Some 4GLs have integrated tools that allow for the easy specification of all the required information: * James Martin's version of
data engineering Data engineering refers to the building of systems to enable the collection and usage of data. This data is usually used to enable subsequent analysis and data science; which often involves machine learning. Making the data usable usually involves ...
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 Oracle Designer was Oracle's CASE tool for designing an information system and generating it. After generating the information system one is able to edit the generated code with Oracle Developer Suite. As of April 2018 this product has reache ...
and
Oracle Developer Suite Oracle Developer Suite is a suite of development tools released by the Oracle Corporation. The principal components were initially Oracle Forms and Oracle Reports and the suite was later expanded to include Oracle Designer and JDeveloper amongst ...
4GL products could be integrated to produce database definitions and the forms and reports programs.


Low code environments

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.


Examples


General use / versatile

* 4th Dimension * Accell/SQL (4GL) from Unify Corporation. *Broadcom 2e Formerly Synon 4GL RPG/COBOL Generator * CA-Telon 4GL Cobol/PLI generator * Clarion * Clipper * Cognos PowerHouse 4GL * DataFlex (Microsoft Windows, web, mobile) * DATATRIEVE * dBase * FileMaker * FOCUS * Forté TOOL (transactional object-oriented language) * GeneXus * Harbour * HyperCard (development and support were ended) *IBM Rational EGL ( Enterprise Generation Language) * LabVIEW * LANSA * LINC * LiveCode * M-Power *
NATURAL Nature, in the broadest sense, is the physical world or universe. "Nature" can refer to the phenomena of the physical world, and also to life in general. The study of nature is a large, if not the only, part of science. Although humans ar ...
* Omnis Studio SDK *
Oracle Application Development Framework In computing, Oracle Application Development Framework, usually called Oracle ADF, provides a Java framework for building enterprise applications. It provides visual and declarative approaches to Java EE development. It supports rapid application ...
* OutSystems (Productivity/PaaS) * Jmix/CUBA Platform (Productivity/Framework) * PowerBuilder * R:Base * SheerPower4GL (Microsoft Windows only) * SQLWindows/ Team Developer * Uniface * Unix Shell * Visual FoxPro (development and support were ended) * XBase++ * Xojo * ZIM:X


Database query languages

* FOCUS * 4D QL * Informix-4GL *
NATURAL Nature, in the broadest sense, is the physical world or universe. "Nature" can refer to the phenomena of the physical world, and also to life in general. The study of nature is a large, if not the only, part of science. Although humans ar ...
* OpenEdge ABL * OpenROAD (Ingres 4GL) *
Ramis RAMIS ("Random Access Management Information System") is a fourth-generation programming language (4GL) capable of creating and maintaining databases consisting of named files containing both numeric and alphabetic fields and subsequently producing ...
* SQL * ZIM:X


Report generators

* LINC *
Oracle Reports Oracle Reports is a tool for developing reports against data stored in an Oracle database. Oracle Reports consists of Oracle Reports Developer (a component of the Oracle Developer Suite) and Oracle Application Server Reports Services (a component ...
*
Progress 4GL OpenEdge Advanced Business Language, or OpenEdge ABL for short, is a business application development language created and maintained by Progress Software Corporation (PSC). The language, typically classified as a fourth-generation programmin ...
Query/Results * RPG-II * ZIM:X Extract data from files or database to create reports in a wide range of formats is done by the report generator tools.


Data manipulation, analysis, and reporting languages

* Ab Initio * ABAP *
Audit Command Language Galvanize (formerly known as ACL Services Ltd.) is a privately owned software as a service (SaaS) company founded and headquartered in Vancouver, British Columbia, Canada. The Company builds security, risk management, compliance and audit sof ...
* Clarion Programming Language * CorVision * Culprit * ADS/Online (plus transaction processing) *
Easytrieve Easytrieve is a report generator, sold by CA Technologies. Easytrieve Classic and Easytrieve Plus are two available versions of this programming languages primarily designed to generate reports and are used by large corporations operating in mai ...
* FOCUS * GraphTalk * IDL * IGOR Pro * Informix-4GL * JSL * Judoscript * LANSA * M-Power * LabVIEW * LiveCode * MANTIS * MAPPER ( Unisys/Sperry) now part of BIS * MARK-IV ( Sterling/Informatics) now VISION:BUILDER of CA * Simulink a component of
MATLAB MATLAB (an abbreviation of "MATrix LABoratory") is a proprietary multi-paradigm programming language and numeric computing environment developed by MathWorks. MATLAB allows matrix manipulations, plotting of functions and data, implementat ...
*
NATURAL Nature, in the broadest sense, is the physical world or universe. "Nature" can refer to the phenomena of the physical world, and also to life in general. The study of nature is a large, if not the only, part of science. Although humans ar ...
*
Nomad A nomad is a member of a community without fixed habitation who regularly moves to and from the same areas. Such groups include hunter-gatherers, pastoral nomads (owning livestock), tinkers and trader nomads. In the twentieth century, the po ...
* Octave * PL/SQL *
Progress 4GL OpenEdge Advanced Business Language, or OpenEdge ABL for short, is a business application development language created and maintained by Progress Software Corporation (PSC). The language, typically classified as a fourth-generation programmin ...
* R *
Ramis RAMIS ("Random Access Management Information System") is a fourth-generation programming language (4GL) capable of creating and maintaining databases consisting of named files containing both numeric and alphabetic fields and subsequently producing ...
* S * Scilab * SAS *
SPSS SPSS Statistics is a statistical software suite developed by IBM for data management, advanced analytics, multivariate analysis, business intelligence, and criminal investigation. Long produced by SPSS Inc., it was acquired by IBM in 2009. C ...
* SQL PL *
SQR SQR (Hyperion SQR Production Reporting, Part of OBIEE) is a programming language designed for generating reports from database management systems. The name is an abbreviation of Structured Query Reporter, which suggests its relationship to SQL ...
*
Stata Stata (, , alternatively , occasionally stylized as STATA) is a general-purpose statistical software package developed by StataCorp for data manipulation, visualization, statistics, and automated reporting. It is used by researchers in many fie ...
* Synon * Wolfram Language * XBase++ * XQuery * XSLT * ZIM:X


Software Software is a set of computer programs and associated documentation and data. This is in contrast to hardware, from which the system is built and which actually performs the work. At the lowest programming level, executable code consist ...
creators

* 4th Dimension (Software) * LiveCode *
MATLAB MATLAB (an abbreviation of "MATrix LABoratory") is a proprietary multi-paradigm programming language and numeric computing environment developed by MathWorks. MATLAB allows matrix manipulations, plotting of functions and data, implementat ...
's GUIDE * Omnis Studio *
OpenROAD {{Unreferenced , date= December 2013 OpenROAD stands for "Open Rapid Object Application Development". It is a software product of Actian Corporation. OpenROAD is a fourth-generation programming language (4GL) which include a suite of development ...
*
Progress 4GL OpenEdge Advanced Business Language, or OpenEdge ABL for short, is a business application development language created and maintained by Progress Software Corporation (PSC). The language, typically classified as a fourth-generation programmin ...
AppBuilder *
SuperTalk SuperTalk is the scripting language used in SuperCard. SuperTalk is a descendant of HyperTalk. Extensions to the HyperTalk base language Additional syntax One of the most powerful features SuperCard adds to the HyperTalk language is ''user prop ...
* Visual DataFlex * Xojo * XUL Can be used with XQuery * ZIM:X


Mathematical optimization

*
AIMMS AIMMS (acronym for Advanced Interactive Multidimensional Modeling System) is a prescriptive analytics software company with offices in the Netherlands, United States, China and Singapore. It has two main product offerings that provide modeling and ...
* AMPL * GAMS * MathProg *
MATLAB MATLAB (an abbreviation of "MATrix LABoratory") is a proprietary multi-paradigm programming language and numeric computing environment developed by MathWorks. MATLAB allows matrix manipulations, plotting of functions and data, implementat ...
* Mathematica * ZIM:X


Database-driven GUI application development

* C/AL * Genexus * SB+/SystemBuilder * Unify VISION * ZIM:X


Low code / No code development platforms

* 1C:Enterprise programming language *
Appcelerator Appcelerator is a privately held mobile technology company based in San Jose, California. Its main products are Titanium, an open-source software development kit for cross-platform mobile development, and the Appcelerator Platform. Founded ...
*
Appian Appian of Alexandria (; grc-gre, Ἀππιανὸς Ἀλεξανδρεύς ''Appianòs Alexandreús''; la, Appianus Alexandrinus; ) was a Greek historian with Roman citizenship who flourished during the reigns of Emperors of Rome Trajan, Ha ...
* Bizagi * DronaHQ * K2 * Kony * LANSA * M-Power * Mendix * OutSystems * Pegasystems * PNMsoft * Progress * ServiceNow * Servoy * ViziApps * WEM


Screen painters and generators

*
Oracle Forms Oracle Forms is a software product for creating screens that interact with an Oracle database. It has an IDE that includes an object navigator, property sheet, and code editor that uses PL/SQL. It was originally developed to run server-side i ...
*
Progress 4GL OpenEdge Advanced Business Language, or OpenEdge ABL for short, is a business application development language created and maintained by Progress Software Corporation (PSC). The language, typically classified as a fourth-generation programmin ...
ProVision * SB+/SystemBuilder * ZIM:X


Web development languages

* ActiveVFP * CFML * LANSA * OutSystems *
Wavemaker WaveMaker is an enterprise grade Java low code platform for building software applications and platforms. WaveMaker Inc. is headquartered in Mountain View, California. For enterprises, WaveMaker is a low code platform that aims to accelerate the ...
* ZIMWEB


Music Programming language

* MaxMSP


See also

* First-generation programming language * Second-generation programming language * Third-generation programming language * Fifth-generation programming language * List of fourth-generation programming languages *
Domain-specific programming language A domain-specific language (DSL) is a computer language specialized to a particular application domain. This is in contrast to a general-purpose language (GPL), which is broadly applicable across domains. There are a wide variety of DSLs, ranging f ...
*
Rapid application development Rapid application development (RAD), also called rapid application building (RAB), is both a general term for adaptive software development approaches, and the name for James Martin's method of rapid development. In general, RAD approaches to ...


References

{{DEFAULTSORT:Fourth-Generation Programming Language Programming language classification Fourth-generation programming languages