A fourth-generation programming language (4GL) is a
high-level computer
A computer is a machine that can be Computer programming, programmed to automatically Execution (computing), carry out sequences of arithmetic or logical operations (''computation''). Modern digital electronic computers can perform generic set ...
programming language
A programming language is a system of notation for writing computer programs.
Programming languages are described in terms of their Syntax (programming languages), syntax (form) and semantics (computer science), semantics (meaning), usually def ...
that belongs to a class of languages envisioned as an advancement upon
third-generation programming languages (3GL). Each of the
programming language generations aims to provide a higher level of
abstraction
Abstraction is a process where general rules and concepts are derived from the use and classifying of specific examples, literal (reality, real or Abstract and concrete, concrete) signifiers, first principles, or other methods.
"An abstraction" ...
of the internal
computer hardware
Computer hardware includes the physical parts of a computer, such as the central processing unit (CPU), random-access memory (RAM), motherboard, computer data storage, graphics card, sound card, and computer case. It includes external devices ...
details, making the language more
programmer
A programmer, computer programmer or coder is an author of computer source code someone with skill in computer programming.
The professional titles Software development, ''software developer'' and Software engineering, ''software engineer' ...
-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 un ...
s. Languages claimed to be 4GL may include support for
database
In computing, a database is an organized collection of data or a type of data store based on the use of a database management system (DBMS), the software that interacts with end users, applications, and the database itself to capture and a ...
management,
report generation,
mathematical optimization
Mathematical optimization (alternatively spelled ''optimisation'') or mathematical programming is the selection of a best element, with regard to some criteria, from some set of available alternatives. It is generally divided into two subfiel ...
,
graphical user interface
A graphical user interface, or GUI, is a form of user interface that allows user (computing), users to human–computer interaction, interact with electronic devices through Graphics, graphical icon (computing), icons and visual indicators such ...
(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 is one of the Greater Sunda Islands in Indonesia. It is bordered by the Indian Ocean to the south and the Java Sea (a part of Pacific Ocean) to the north. With a population of 156.9 million people (including Madura) in mid 2024, proje ...
, and
JavaScript
JavaScript (), often abbreviated as JS, is a programming language and core technology of the World Wide Web, alongside HTML and CSS. Ninety-nine percent of websites use JavaScript on the client side for webpage behavior.
Web browsers have ...
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
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 sapph ...
, and
Perl
Perl is a high-level, general-purpose, interpreted, dynamic programming language. Though Perl is not officially an acronym, there are various backronyms in use, including "Practical Extraction and Reporting Language".
Perl was developed ...
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 ''Application Development Without Programmers'' to refer to non-procedural, high-level
specification languages. In some primitive way, early 4GLs were included in the
Informatics
Informatics is the study of computational systems. According to the Association for Computing Machinery, ACM Europe Council and Informatics Europe, informatics is synonymous with computer science and computing as a profession, in which the centra ...
MARK-IV (1967) product and
Sperry's
MAPPER
MAPPER Systems, now known as Business Information Server, BIS, is a 4GL, fourth-generation programming language originally from
Sperry Univac. Now owned by Unisys Corporation. Mapper originated in the 1970s based on some work in the 1960s, It ha ...
(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
Semantics is the study of linguistic Meaning (philosophy), meaning. It examines what meaning is, how words get their meaning, and how the meaning of a complex expression depends on its parts. Part of this process involves the distinction betwee ...
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
A punched card (also punch card or punched-card) is a stiff paper-based medium used to store digital information via the presence or absence of holes in predefined positions. Developed over the 18th to 20th centuries, punched cards were widel ...
(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 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
Informatics is the study of computational systems. According to the Association for Computing Machinery, ACM Europe Council and Informatics Europe, informatics is synonymous with computer science and computing as a profession, in which the centra ...
." 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
MAPPER Systems, now known as Business Information Server, BIS, is a 4GL, fourth-generation programming language originally from
Sperry Univac. Now owned by Unisys Corporation. Mapper originated in the 1970s based on some work in the 1960s, It ha ...
system developed by
Sperry. 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
Unisys Corporation is a global technology solutions company founded in 1986 and headquartered in Blue Bell, Pennsylvania. The company provides cloud, AI, digital workplace, logistics, and enterprise computing services.
History Founding
Unis ...
.
MARK-IV is now known as VISION:BUILDER and is offered by
Computer Associates.
The Santa Fe railroad used
MAPPER
MAPPER Systems, now known as Business Information Server, BIS, is a 4GL, fourth-generation programming language originally from
Sperry Univac. Now owned by Unisys Corporation. Mapper originated in the 1970s based on some work in the 1960s, It ha ...
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
MAPPER Systems, now known as Business Information Server, BIS, is a 4GL, fourth-generation programming language originally from
Sperry Univac. Now owned by Unisys Corporation. Mapper originated in the 1970s based on some work in the 1960s, It ha ...
than to teach programmers the "intricacies of railroad operations".
One of the early (and portable) languages that had 4GL properties was
RAMIS 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 tables that can be used for this purpose). 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 one or more lower level
dynamic-link library (DLL), generated from a typical 3GL for when the need arises 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,
screen generators (also called 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
computer-aided software engineering (CASE) tools, specifications of screens and reports, and possibly also the specification of some additional processing logic.
*
Data management
Data management comprises all disciplines related to handling data as a valuable resource, it is the practice of managing an organization's data so it can be analyzed for decision making.
Concept
The concept of data management emerged alongsi ...
4GLs such as
SAS,
SPSS, and
Stata provide sophisticated coding
commands for data manipulation, file reshaping, case selection, and data documentation in the preparation of data for
statistical analysis
Statistical inference is the process of using data analysis to infer properties of an underlying probability distribution.Upton, G., Cook, I. (2008) ''Oxford Dictionary of Statistics'', OUP. . Inferential statistical analysis infers properties of ...
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 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 diagram
An entity is something that Existence, exists as itself. It does not need to be of material existence. In particular, abstractions and legal fictions are usually regarded as entities. In general, there is also no presumption that an entity is Lif ...
s,
entity life history diagrams etc., from which hundreds of thousands of lines of
COBOL would be generated overnight.
* More recently
Oracle Corporation
Oracle Corporation is an American Multinational corporation, multinational computer technology company headquartered in Austin, Texas. Co-founded in 1977 in Santa Clara, California, by Larry Ellison, who remains executive chairman, Oracle was ...
's
Oracle Designer and
Oracle Developer Suite 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
dBase (also stylized dBASE) was one of the first database management systems for microcomputers and the most successful in its day. The dBase system included the core database engine, a query system, a Form (programming), forms engine, and a pr ...
*
FileMaker
*
FOCUS
*
Forté TOOL (transactional object-oriented language)
*
GeneXus
*
Harbour
A harbor (American English), or harbour (Commonwealth English; see American and British English spelling differences#-our, -or, spelling differences), is a sheltered body of water where ships, boats, and barges can be Mooring, moored. The t ...
*
HyperCard
HyperCard is a application software, software application and software development kit, development kit for Apple Macintosh and Apple IIGS computers. It is among the first successful hypermedia systems predating the World Wide Web.
HyperCard com ...
(development and support were ended)
*IBM Rational EGL (
Enterprise Generation Language)
*
Infor
*
LabVIEW
*
LANSA
*
LINC
*
LiveCode
*
M-Power
*
NATURAL
*
Omnis Studio SDK
*
Oracle Application Development Framework
*
OutSystems (Productivity/PaaS)
*
Jmix/CUBA Platform (Productivity/Framework)
*
PowerBuilder
*
R:Base
*
SheerPower4GL (Microsoft Windows only)
*
SQLWindows/
Team Developer
*
Uniface
*
Unix Shell
A Unix shell is a Command-line_interface#Command-line_interpreter, command-line interpreter or shell (computing), shell that provides a command line user interface for Unix-like operating systems. The shell is both an interactive command languag ...
*
Visual FoxPro
Visual FoxPro is a programming language that was developed by Microsoft. It is a data-centric and procedural programming language with object-oriented programming (OOP) features.
It was derived from FoxPro (which was itself descended from FoxB ...
(development and support were ended)
*
XBase++
*
Xojo
Database query languages
*
FOCUS
*
4D QL
*
Informix-4GL
*
NATURAL
*
OpenEdge Advanced Business Language (OpenEdge ABL)
*
OpenROAD (Ingres 4GL)
*
RAMIS
*
SQL
Report generators
*Speedware EasyReporter
*
LINC
*
Oracle Reports
*
OpenEdge Advanced Business Language (former Progress 4GL) Query/Results
*
RPG-II
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
*
Clarion Programming Language
*
CorVision
*
Culprit
*
ADS/Online (plus transaction processing)
*
Easytrieve
*
FOCUS
*
GraphTalk
*
IDL
*
IGOR Pro
*
Informix-4GL
*
JSL
*
LANSA
*
LabVIEW
*
LiveCode
*
M-Power
*
MANTIS
*
MAPPER
MAPPER Systems, now known as Business Information Server, BIS, is a 4GL, fourth-generation programming language originally from
Sperry Univac. Now owned by Unisys Corporation. Mapper originated in the 1970s based on some work in the 1960s, It ha ...
(
Unisys/Sperry) now part of BIS
*
MARK-IV (
Sterling/Informatics) now VISION:BUILDER of CA
*
Simulink
Simulink is a MATLAB-based graphical programming environment for modeling, simulating and analyzing multidomain dynamical systems. Its primary interface is a graphical block diagramming tool and a customizable set of block libraries. It offe ...
a component of
MATLAB
*
NATURAL
*
Nomad
*
Octave
In music, an octave (: eighth) or perfect octave (sometimes called the diapason) is an interval between two notes, one having twice the frequency of vibration of the other. The octave relationship is a natural phenomenon that has been referr ...
*
PL/SQL
*
OpenEdge Advanced Business Language (former Progress 4GL)
*
R
*
RAMIS
*
S
*
Scilab
*
SAS
*
SPSS
*
SQL PL
*
SSIS
*
SQR
*
Stata
*
Synon
*
Wolfram Language
*
XBase++
*
XQuery
*
XSLT
Software
Software consists of computer programs that instruct the Execution (computing), execution of a computer. Software also includes design documents and specifications.
The history of software is closely tied to the development of digital comput ...
creators
*
4th Dimension (Software)
*
LiveCode
*
MATLAB's GUIDE
*
Omnis Studio
*
OpenROAD
*
OpenEdge Advanced Business Language (former Progress 4GL) AppBuilder
*
SuperTalk
*
Visual DataFlex
*
Xojo
*
XUL Can be used with
XQuery
Mathematical optimization
*
AIMMS
*
AMPL
AMPL (A Mathematical Programming Language) is an algebraic modeling language to describe and solve high-complexity problems for large-scale mathematical computing (e.g. large-scale optimization and scheduling-type problems).
It was developed ...
*
GAMS
*
Mathematica
*
MathProg
*
MATLAB
Database-driven GUI application development
*
C/AL
*
Genexus
*
SB+/SystemBuilder
*
Unify VISION
Low-code / No-code development platforms
Source:
*
1C:Enterprise programming language
*
Appcelerator
*
Appian
Appian of Alexandria (; ; ; ) was a Greek historian with Roman citizenship who prospered during the reigns of the Roman Emperors Trajan, Hadrian, and Antoninus Pius.
He was born c. 95 in Alexandria. After holding the senior offices in the pr ...
*
Bizagi
*
DronaHQ
*
LANSA
*
M-Power
*
Microsoft Power Automate
*
Node-RED
*
OutSystems
*
Pegasystems
*
PNMsoft
*
OpenEdge Advanced Business Language (former Progress 4GL) Progress
*
ServiceNow
*
ViziApps
Screen painters and generators
*
Oracle Forms
*
OpenEdge Advanced Business Language (former Progress 4GL) ProVision
*
SB+/SystemBuilder
Web development languages
*ActiveVFP
*
CFML
*
LANSA
*
OutSystems
*
Wavemaker
Music Programming language
*
MaxMSP
See also
*
List of fourth-generation programming languages
*
Domain-specific language
*
Rapid application development
References
{{DEFAULTSORT:Fourth-Generation Programming Language
Programming language classification
Fourth-generation programming languages