Fifth-generation programming language

Fifth-generation programming language

A fifth-generation programming language (abbreviated 5GL) is a programming language based around solving problems using constraints given to the program, rather than using an algorithm written by a programmer. Most constraint-based and logic programming languages and some declarative languages are fifth-generation languages.

While fourth-generation programming languages are designed to build specific programs, fifth-generation languages are designed to make the computer solve the problem for you. This way, the programmer only needs to worry about what problems need to be solved and what conditions need to be met, without worrying about how to implement a routine or algorithm to solve them. Fifth-generation languages are used mainly in artificial intelligence research. Prolog, OPS5, and Mercury are the best known fifth-generation languages.

These types of languages were also built upon Lisp, many originating on the Lisp machine. ICAD is a good example. Then, there are many frame languages, such as KL-ONE.

In the 1990s, fifth-generation languages were considered to be the wave of the future, and some predicted that they would replace all other languages for system development, with the exception of low-level languages. Most notably, from 1982 to 1993 Japan cite web|url=http://www.atariarchives.org/deli/fifth_generation.php|title=FIFTH-GENERATION COMPUTERS|accessdate=2008-03-05|author=Richard Grigonis] cite web|url=http://www.cs.kuleuven.ac.be/~dtai/projects/ALP/|title=Association for Logic Programming (ALP)|accessdate=2008-03-05|author=APL] put much research and money into their fifth generation computer systems project, hoping to design a massive computer network of machines using these tools.

However, as larger programs were built, the flaws of the approach became more apparent. It turns out that, starting from a set of constraints defining a particular problem, deriving an efficient algorithm to solve it is a very difficult problem in itself. This crucial step cannot yet be automated and still requires the insight of a human programmer.

Today, fifth-generation languages have lost part of their initial appeal and are mostly used in academic circles.

Common misconception

From time to time vendors in the application development space have claimed 5GL (5th generation language) capabilities. [ [http://www.it-analysis.com/channels/content.php?cid=9096 What makes a 5GL?] ] Most of the time they actually sell 4GLs with a higher level of automation and knowledge base. Since the 5GL awareness has dropped because the hype of the 80's quickly faded away and that the projects were eventually all dropped; this has opened doors to the vendors to re-use the term in marketing their new tools, without causing much controversy among the current generations of programmers. Their tools actually consist of 4GLs packed with RAD wizards, CASE tools and other graphical coding assistance that facilitates code generation.

Some argue that the graphical approach to easing programming is the real next step in practically raising the level of abstraction (although this paradigm has not yet been fully realized). Constraint-driven programming and other 5GL ambitions will have to wait for a 6th or 7th generation.

ee also

*Constraint programming

References


Wikimedia Foundation. 2010.

Игры ⚽ Нужно сделать НИР?

Look at other dictionaries:

  • Programming language — lists Alphabetical Categorical Chronological Generational 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… …   Wikipedia

  • Very high-level programming language — A very high level programming language (VHLL) is a programming language with a very high level of abstraction, used primarily as a professional programmer productivity tool.Very high level programming languages are usually limited to a very… …   Wikipedia

  • Fifth generation computer — For the Fifth Generation of Chinese filmmakers, see Cinema of China The rise of the Fifth Generation .The Fifth Generation Computer Systems project (FGCS) was an initiative by Japan s Ministry of International Trade and Industry, begun in 1982,… …   Wikipedia

  • fifth-generation — adjective denoting a proposed new class of computer or programming language employing artificial intelligence …   English new terms dictionary

  • Fifth — may refer to: * One fifth, a quintile, or 20% of a certain amount * The fifth in a series, or four after the first * 1st Battalion 5th Marines * In the United States, the Fifth Amendment to the United States Constitution especially as in the… …   Wikipedia

  • artificial intelligence programming language —       a computer language developed expressly for implementing artificial intelligence (AI) research. In the course of their work on the Logic Theorist and GPS, two early AI programs, Allen Newell (Newell, Allen) and J. Clifford Shaw of the Rand… …   Universalium

  • Planner (programming language) — Planner (often seen in publications as PLANNER although it is not an acronym) is a programming language designed by Carl Hewitt at MIT, and first published in 1969. First, subsets such as Micro Planner and Pico Planner were implemented, and then… …   Wikipedia

  • APL (programming language) — APL Paradigm(s) array, functional, structured, modular Appeared in 1964 Designed by Kenneth E. Iverson Developer Kenneth E. Iverson …   Wikipedia

  • Generation language — Quelltext eines Programms in der objektorientierten Programmiersprache Ruby. Eine Programmiersprache ist eine Notation für Computerprogramme; sie dient sowohl dazu, diese während und nach ihrer Entwicklung (Programmierung) darzustellen als auch… …   Deutsch Wikipedia

  • Degrassi: The Next Generation — Degrassi Degrassi logo, used from season 10 present Also known as Degrassi: The Next Generation (original title, until season 10) Genre Teen drama …   Wikipedia

Share the article and excerpts

Direct link
Do a right-click on the link above
and select “Copy Link”