Fifth-generation programming language

This is an old revision of this page, as edited by SmackBot (talk | contribs) at 00:40, 8 February 2008 (Date the maintenance tags or general fixes). The present address (URL) is a permanent link to this revision, which may differ significantly from the current revision.

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

Alternative Definition

5GL or fifth-generation programming language is programming that uses a visual or graphical development interface to create source language that is usually compiled with a 3GL or 4GL language compiler. Microsoft, Borland, IBM, and other companies make 5GL visual programming products for developing applications in Java, for example. Visual programming allows you to easily envision object-oriented programming class hierarchies and drag icons to assemble program components.

Regular Expressions

The regexp syntax forms a ___domain-specific 5GL. Rather than defining an algorithm, the programmer specifies, by means of specialized syntax, a pattern to match text against (i.e., constraints). The regex pattern is compiled and run against text, returning the token(s) desired by the programmer.

Regular expressions exist in Perl, Python, Java, Ruby, .NET, PHP, SED, AWK, C and ECMAScript. The difficulty level and repetitive nature of searching text and returning desired tokens makes regular expressions one of the few ubiquitous examples of a 5GL (___domain-specific though it is).

See also

References

Generation Languages [1]