Fourth-generation programming language
Encyclopedia
A fourth-generation programming language (1970s-1990) (abbreviated 4GL) is a programming language
Programming language
A programming language is an artificial language designed to communicate instructions to a machine, particularly a computer. Programming languages can be used to create programs that control the behavior of a machine and/or to express algorithms precisely....

 or programming environment designed with a specific purpose in mind, such as the development of commercial business software. In the history of computer science
History of computer science
The history of computer science began long before the modern discipline of computer science that emerged in the twentieth century, and hinted at in the centuries prior...

, the 4GL followed the 3GL
Third-generation programming language
A third-generation programming language is a refinement of a second-generation programming language. The second generation of programming languages brought logical structure to software. The third generation brought refinements to make the languages more programmer-friendly...

 in an upward trend toward higher abstraction and statement power. The 4GL was followed by efforts to define and use a 5GL
Fifth-generation programming language
A fifth-generation programming language is a programming language based around solving problems using constraints given to the program, rather than using an algorithm written by a programmer...

.

The natural-language, block-structured mode of the third-generation programming language
Third-generation programming language
A third-generation programming language is a refinement of a second-generation programming language. The second generation of programming languages brought logical structure to software. The third generation brought refinements to make the languages more programmer-friendly...

s improved the process of software development. However, 3GL
Third-generation programming language
A third-generation programming language is a refinement of a second-generation programming language. The second generation of programming languages brought logical structure to software. The third generation brought refinements to make the languages more programmer-friendly...

 development methods can be slow and error-prone. It became clear that some applications could be developed more rapidly by adding a higher-level programming language and methodology which would generate the equivalent of very complicated 3GL instructions with fewer errors. In some senses, software engineering
Software engineering
Software Engineering is the application of a systematic, disciplined, quantifiable approach to the development, operation, and maintenance of software, and the study of these approaches; that is, the application of engineering to software...

 arose to handle 3GL
Third-generation programming language
A third-generation programming language is a refinement of a second-generation programming language. The second generation of programming languages brought logical structure to software. The third generation brought refinements to make the languages more programmer-friendly...

 development. 4GL and 5GL
Fifth-generation programming language
A fifth-generation programming language is a programming language based around solving problems using constraints given to the program, rather than using an algorithm written by a programmer...

 projects are more oriented toward problem solving
Problem solving
Problem solving is a mental process and is part of the larger problem process that includes problem finding and problem shaping. Consideredthe most complex of all intellectual functions, problem solving has been defined as higher-order cognitive process that requires the modulation and control of...

 and systems engineering
Systems engineering
Systems engineering is an interdisciplinary field of engineering that focuses on how complex engineering projects should be designed and managed over the life cycle of the project. Issues such as logistics, the coordination of different teams, and automatic control of machinery become more...

.

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 as was seen with MARK-IV
MARK-IV (Software)
MARK-IV is a Fourth-generation programming language that was created by Informatics, Inc. in the 1960s. Informatics, Inc. took advantage of IBM's decision to unbundle their software; MARK-IV was the first "software product to have cumulative sales of $10 million".MARK-IV is now part of the product...

 and MAPPER (see History Section, Santa Fe real-time tracking of their freight cars – the productivity gains were estimated to be 8 times over COBOL
COBOL
COBOL is one of the oldest programming languages. Its name is an acronym for COmmon Business-Oriented Language, defining its primary domain in business, finance, and administrative systems for companies and governments....

). The usability
Heuristic evaluation
A heuristic evaluation is a discount usability inspection method for computer software that helps to identify usability problems in the user interface design. It specifically involves evaluators examining the interface and judging its compliance with recognized usability principles...

 improvements obtained by some 4GLs (and their environment) allowed better exploration for heuristic solutions than did the 3GL
Third-generation programming language
A third-generation programming language is a refinement of a second-generation programming language. The second generation of programming languages brought logical structure to software. The third generation brought refinements to make the languages more programmer-friendly...

.

A quantitative definition of 4GL has been set by Capers Jones
Capers Jones
Capers Jones is a specialist in software engineering methodologies, and is often associated with the function point model of cost estimation. He also collects data on software quality, software risks, and software best practices. His many computer science publications have been widely used by many...

, as part of his work on function point analysis. Jones defines the various generations of programming languages in terms of developer productivity, measured in function points per staff-month. A 4GL is defined as a language that supports 12–20 FP/SM. This correlates with about 16–27 lines of code per function point implemented in a 4GL.

Fourth-generation languages have often been compared to domain-specific programming language
Domain-specific programming language
In software development and domain engineering, a domain-specific language is a programming language or specification language dedicated to a particular problem domain, a particular problem representation technique, and/or a particular solution technique...

s (DSLs). Some researchers state that 4GLs are a subset of DSLs.

History

Though used earlier in papers and discussions, the term 4GL was first used formally by James Martin
James Martin (author)
James Martin is a British Information Technology consultant and author, who was nominated for a Pulitzer prize for his book, The Wired Society: A Challenge for Tomorrow .- Biography :...

 in his 1982 book Applications Development Without Programmers to refer to non-procedural, high-level specification language
Specification language
A specification language is a formal language used in computer science.Unlike most programming languages, which are directly executable formal languages used to implement a system, specification languages are used during systems analysis, requirements analysis and systems design.Specification...

s. In some primitive way, Early 4GL's were included the Informatics
Sterling Software
Sterling Software was an American software company founded in Dallas, Texas in 1981 by Sterling Williams and brothers Sam and Charles Wyly. The company was acquired by Computer Associates International in 2000 in a stock-for-stock transaction worth $3.3 billion.Computer Associates sold Sterling...

 MARK-IV
MARK-IV (Software)
MARK-IV is a Fourth-generation programming language that was created by Informatics, Inc. in the 1960s. Informatics, Inc. took advantage of IBM's decision to unbundle their software; MARK-IV was the first "software product to have cumulative sales of $10 million".MARK-IV is now part of the product...

 (1967) product and Sperry
Sperry
-Persons:*Armstrong Sperry , American author and illustrator*Brett Sperry , American video game designer*Carlos A. Sperry, Democratic President of the West Virginia Senate from Greenbrier County, served 1872-1872...

'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.

In a sense, the 4GL is an example of 'black box
Black box
A black box is a device, object, or system whose inner workings are unknown; only the input, transfer, and output are known characteristics.The term black box can also refer to:-In science and technology:*Black box theory, a philosophical theory...

' processing, each generation (in the sense of the page) is further from the machine (see the Computer Science
Computer science
Computer science or computing science is the study of the theoretical foundations of information and computation and of practical techniques for their implementation and application in computer systems...

 history in regard to data structure improvements and information hiding
Information hiding
In computer science, information hiding is the principle of segregation of the design decisions in a computer program that are most likely to change, thus protecting other parts of the program from extensive modification if the design decision is changed...

). It is this latter nature that is directly associated with 4GL having errors that are harder, in many cases, to debug. In terms of applications, a 4GL could be business oriented or it could deal with some technical domain. Being further from the machine implies being closer to domain. Given the wide disparity of concepts and methods across domains, 4GL limitations lead to recognition of the need for the 5GL
Fifth-generation programming language
A fifth-generation programming language is a programming language based around solving problems using constraints given to the program, rather than using an algorithm written by a programmer...

.

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
Computer programming in the punch card era
From the invention of computer programming languages up to the mid-1980s, many if not most computer programmers created, edited and stored their programs on punched cards. The practice was nearly universal with IBM computers in the era. A punched card is a flexible write-once medium that encodes,...

 could offer a wide variety of processing and reporting capability whereas the equivalent functionality coded in a 3GL
Third-generation programming language
A third-generation programming language is a refinement of a second-generation programming language. The second generation of programming languages brought logical structure to software. The third generation brought refinements to make the languages more programmer-friendly...

 could subsume, perhaps, a whole box or more of cards
Computer programming in the punch card era
From the invention of computer programming languages up to the mid-1980s, many if not most computer programmers created, edited and stored their programs on punched cards. The practice was nearly universal with IBM computers in the era. A punched card is a flexible write-once medium that encodes,...

.

The 72-character metaphor continued for a while
Characters per line
In typography and computing characters per line or terminal width refers to the maximal number of monospaced characters that may appear on a single line...

 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
Nomad software
Nomad Software is a relational database and fourth-generation language , originally developed in the 70s by time-sharing vendor National CSS, Inc...

 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
James Martin (author)
James Martin is a British Information Technology consultant and author, who was nominated for a Pulitzer prize for his book, The Wired Society: A Challenge for Tomorrow .- Biography :...

 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
MARK-IV (Software)
MARK-IV is a Fourth-generation programming language that was created by Informatics, Inc. in the 1960s. Informatics, Inc. took advantage of IBM's decision to unbundle their software; MARK-IV was the first "software product to have cumulative sales of $10 million".MARK-IV is now part of the product...

, from Informatics
Sterling Software
Sterling Software was an American software company founded in Dallas, Texas in 1981 by Sterling Williams and brothers Sam and Charles Wyly. The company was acquired by Computer Associates International in 2000 in a stock-for-stock transaction worth $3.3 billion.Computer Associates sold Sterling...

." 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 Corporation
Sperry Corporation was a major American equipment and electronics company whose existence spanned more than seven decades of the twentieth century...

. 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
Unisys Corporation , headquartered in Blue Bell, Pennsylvania, United States, and incorporated in Delaware, is a long established business whose core products now involves computing and networking.-History:...

. MARK-IV
MARK-IV (Software)
MARK-IV is a Fourth-generation programming language that was created by Informatics, Inc. in the 1960s. Informatics, Inc. took advantage of IBM's decision to unbundle their software; MARK-IV was the first "software product to have cumulative sales of $10 million".MARK-IV is now part of the product...

 is now known as VISION:BUILDER and is offered by Computer Associates.

Santa Fe
Atchison, Topeka and Santa Fe Railway
The Atchison, Topeka and Santa Fe Railway , often abbreviated as Santa Fe, was one of the larger railroads in the United States. The company was first chartered in February 1859...

 railroad used MAPPER to develop a system, in a project that was an early example of 4GL, rapid prototyping
Software prototyping
*Software prototyping, refers to the activity of creating prototypes of software applications, i.e., incomplete versions of the software program being developed...

, and programming by users
End-user computing
In computing, End User Computing refer to systems in which non-programmers can create working applications. EUC is a group of approaches to computing that aim at better integrating end users into the computing environment...

. 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 software
RAMIS Software is a fourth-generation programming language capable of generating reports using simple language and many fewer lines of code than previous third-generation programing languages such as COBOL...

 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
FOCUS
FOCUS is a computer programming language. It is a database query building language, regarded as a fourth-generation programming language. produced by Information Builders Inc...

.

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
End-user computing
In computing, End User Computing refer to systems in which non-programmers can create working applications. EUC is a group of approaches to computing that aim at better integrating end users into the computing environment...

 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 his 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 table
    Control tables are tables that control the program flow or play a major part in program control. There are no rigid rules concerning the structure or content of a control table - its only qualifying attribute is its ability to direct program flow in some way through its 'execution' by an associated...

    s that can be used for this purpose). A good example of this type of 4GL language is PowerBuilder
    PowerBuilder
    PowerBuilder is an integrated development environment owned by Sybase, a division of SAP. It has been in use since 1991, peaking around 1998 with around 100,000 users....

    . 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 language
    Report Generator
    Broadly speaking a Report Generator is an application whose purpose it is to take data from a source such as an XML data feed and then use it to produce a document in a format which satisfies a particular human readership....

    s 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
    Computer-aided software engineering
    Computer-aided software engineering is the scientific application of a set of tools and methods to a software system which is meant to result in high-quality, defect-free, and maintainable software products...

     tools, specifications of screens and reports, and possibly also the specification of some additional processing logic.
  • Data management
    Data management
    Data management comprises all the disciplines related to managing data as a valuable resource.- Overview :The official definition provided by DAMA International, the professional organization for those in the data management profession, is: "Data Resource Management is the development and execution...

     4GLs such as SAS
    SAS System
    SAS is an integrated system of software products provided by SAS Institute Inc. that enables programmers to perform:* retrieval, management, and mining* report writing and graphics* statistical analysis...

    , SPSS
    SPSS
    SPSS is a computer program used for survey authoring and deployment , data mining , text analytics, statistical analysis, and collaboration and deployment ....

     and Stata
    Stata
    Stata is a general-purpose statistical software package created in 1985 by StataCorp. It is used by many businesses and academic institutions around the world...

     provide sophisticated coding commands
    Command (computing)
    In computing, a command is a directive to a computer program acting as an interpreter of some kind, in order to perform a specific task. Most commonly a command is a directive to some kind of command line interface, such as a shell....

     for data manipulation, file reshaping, case selection and data documentation in the preparation of data for statistical analysis and reporting.


Some 4GLs have integrated tools which allow for the easy specification of all the required information:
  • James Martin's version of 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 diagram
    Data flow diagram
    A data flow diagram is a graphical representation of the "flow" of data through an information system, modelling its process aspects. Often they are a preliminary step used to create an overview of the system which can later be elaborated...

    s, entity relationship diagrams, entity life history diagrams etc. from which hundreds of thousands of lines of COBOL
    COBOL
    COBOL is one of the oldest programming languages. Its name is an acronym for COmmon Business-Oriented Language, defining its primary domain in business, finance, and administrative systems for companies and governments....

     would be generated overnight.
  • More recently Oracle Corporation
    Oracle Corporation
    Oracle Corporation is an American multinational computer technology corporation that specializes in developing and marketing hardware systems and enterprise software products – particularly database management systems...

    's Oracle Designer
    Oracle Designer
    Oracle Designer is 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-Components of Oracle Designer:Business Process Modelling...

     and Oracle Developer Suite
    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, although the suite was later expanded to include JDeveloper amongst others.-History:...

     4GL products could be integrated to produce database definitions and the forms and reports programs.

Some fourth-generation languages

General use / versatile

Database query language
Query language
Query languages are computer languages used to make queries into databases and information systems.Broadly, query languages can be classified according to whether they are database query languages or information retrieval query languages...

s

Report generators
Data manipulation, analysis, and reporting languages
GUI
Gui
Gui or guee is a generic term to refer to grilled dishes in Korean cuisine. These most commonly have meat or fish as their primary ingredient, but may in some cases also comprise grilled vegetables or other vegetarian ingredients. The term derives from the verb, "gupda" in Korean, which literally...

 creators

Mathematical optimization
  • AIMMS
    AIMMS
    AIMMS is a software system designed for modeling and solving large-scale optimization and scheduling-type problems....

  • AMPL
    AMPL
    AMPL, an acronym for "A Mathematical Programming Language", is an algebraic modeling language for describing and solving high-complexity problems for large-scale mathematical computation AMPL, an acronym for "A Mathematical Programming Language", is an algebraic modeling language for describing and...

  • GAMS
    GAMS
    -Acronyms:* General Algebraic Modeling System , a mathematical optimization computer program* Guide to Available Mathematical Software , a project of the National Institute of Standards and Technology...



Data-stream languages
  • APE
  • AVS
  • Iris Explorer


Database-driven GUI application development
  • Action Request System
    Action Request System
    BMC Remedy Action Request System is a client–server software application development environment from BMC Software . Action Request System uses a third party database for storing data in tables...

  • Genexus
    GeneXus
    GeneXus is a knowledge-based development tool, mainly oriented to enterprise-class applications for the Web applications, Microsoft Windows and smart device platforms...

  • SB+/SystemBuilder
    IBM SystemBuilder
    SystemBuilder is the name of a 4GL development and runtime environment originally written for the Pick family of computer databases/environments and now part of the Rocket U2 software suite....

  • Progress Dynamics
  • UNIFACE
    Uniface
    In archeology, a uniface is a specific type of stone tool that has been flaked on one surface only. There are two general classes of uniface tools: modified flakes—and formalized tools, which display deliberate, systematic modification of the marginal edges, evidently formed for a specific...



Screen painters and generators
  • SB+/SystemBuilder
    IBM SystemBuilder
    SystemBuilder is the name of a 4GL development and runtime environment originally written for the Pick family of computer databases/environments and now part of the Rocket U2 software suite....

  • Oracle Forms
    Oracle Forms
    Oracle Forms is a software product for creating screens that interact with an Oracle database. It has an IDE including an object navigator, property sheet and code editor that uses PL/SQL. It was originally developed to run server-side in character mode terminal sessions. It was ported to other...

  • Progress 4GL
    Progress 4GL
    OpenEdge Advanced Business Language, or OpenEdge ABL for short, is a business application development language created and maintained by Progress Software Corporation . The language, typically classified as a fourth-generation programming language, uses an English-like syntax to simplify software...

     ProVision
  • Unify Accell


Web development languages
  • ColdFusion
    ColdFusion
    In computing, ColdFusion is the name of a commercial rapid application development platform invented by Jeremy and JJ Allaire in 1995. ColdFusion was originally designed to make it easier to connect simple HTML pages to a database, by version 2 it had...

  • Wavemaker
    Wavemaker
    WaveMaker is an open source software development platform that automates much of the process for creating Java web and cloud applications. WaveMaker provides a visual rapid application development platform and is available as a free open source software download...

     open source, browser-based development platform for Ajax development based on Dojo, Spring, Hibernate
  • OutSystems
    OutSystems
    OutSystems is a multinational software company which operates in the agile software development market. The company’s mission is to provide technology that speeds up and reduces the costs of the delivery and management of web business applications using agile methodologies.OutSystems' flagship...


External links

The source of this article is wikipedia, the free encyclopedia.  The text of this article is licensed under the GFDL.
 
x
OK