FazBrowse Wikipedia Viewer | Main Page |
Search Wikipedia:
|
Viewing: https://en.wikipedia.org/wiki/Programming_language_generations

Programming language generations

Programming languages have been classified into several programming language generations. This series of buzzwords was popular in the 1980s and 1990s. Historically, this classification was used to indicate increasing power of programming styles. Later writers have somewhat redefined the meanings as distinctions previously seen as important became less significant to current practice.

The terms first-generation and second-generation programming language were not used prior to the coining of the term third-generation. None of these three terms are mentioned in early compendiums of programming languages. As early as May 1966 computers were advertised as third generation computers. This buzzword was reused to advertise programming languages as third generation languages within the same year. It is synonymous to the buzzword high-level programming language which was coined 1964 or a bit earlier. In 1957 Bob Bemer still called programming with a high-level language “automatic programming”. Machine code languages were retroactively named first generation and assembly languages second generation languages.

Niklaus Wirth, who designed Pascal, wrote in 2008 that high-level language was “a poorly understood buzzword” and contrasted C with high-level programming languages.

Around 1973 fourth-generation language was coined. It was used for declarative languages (such as Prolog), “database languages” and domain-specific languages which claimed to operate at an even higher level, and in a domain even closer to the user (e.g. at a natural-language level) than the original, imperative high-level languages such as Pascal, C, ALGOL, Fortran, BASIC, etc.

Also around 1973 very high level language (VHLL) was coined. It remained rarely used and is about as vague as 5GL. The only consistent thing about it is that it is supposed to be higher-level than high-level language. In 1974 English was called a VHLL. One paper from 1974 says VHLL are supposed to be nonprocedural (declarative) languages. In 1983 a paper calls the procedural languages APL, SETL and BDL VHLLs. In the 90s it was sometimes used to refer to scripting languages like Perl and Python.

"Generational" classification of high-level languages (third generation and later) was never fully precise and was later perhaps abandoned, with more precise classifications gaining common usage, such as domain-specific, object-oriented, declarative and functional. C gave rise to C++ and later to Java and C#; Lisp to CLOS; Ada to Ada 2012; and even COBOL to COBOL 2002. New languages have emerged in that "generation" as well.

In 1988 in the German computer magazine Computerwoche Jürgen Dyrda, Managing Director of Progress Software GmbH, said that the discussion of 5GL is absurd. The article further claims that a few years prior 4GL disputed too and that at the time anyone who wants to be taken seriously in the market included the term "4GL" either before or after the product name of his database software.

In 2017 Computerwoche wrote that 4GL is "a rather vague term that was primarily used for marketing purposes in the 1980s" and that 5GL is "even more vague. But has something to do with artificial intelligence."

In the September 1994 issue of the Scientific American Bill Curtis says in an interview with W. Wayt Gibbs, “In the 1970s structured programming was also touted as a paradigm shift. So was CASE [computer-assisted software engineering]. So were third-, fourth- and fifth-generation languages. We’ve heard great promises for technology, many of which weren’t delivered.”

A first-generation programming language (1GL) is a machine-level programming language and belongs to the low-level programming languages.

These are the languages that can be directly executed by a central processing unit (CPU). This makes the language suitable for execution by the machine but far more difficult for a human programmer to learn and interpret. First-generation programming languages are rarely used by programmers in the twenty-first century, but they were universally used to program early computers, before assembly languages were invented and when computer time was too scarce to be spent running an assembler.

It is also known as machine language. Originally, no translator was used to compile or assemble a first-generation language. The first-generation programming instructions were entered through the front panel switches of the computer system.

The instructions in a 1GL are made of binary numbers, represented by 1s and 0s (or occasionally via octal or hexadecimal to the programmer). This makes the language suitable for the understanding of the machine but far more difficult to interpret and learn by the human programmer.

First-generation languages are very much adapted to a specific computer and CPU, and code portability is therefore significantly reduced in comparison to higher-level languages. Modern tools such as native-code compilers are used to produce machine-level code from a higher-level language.

Second generation (2GL)

edit

View original on Wikipedia | Back | FazBrowse Home