An Aside: Japan and the 5GL
In the late ’80s, Japan embarked on a program to build a next-generation programming language—a fifth-generation language, or 5GL for short.
The idea of any programming language is to allow the programmer to provide a high-level description and have the compiler turn it into a program. The 4GL concept is based on the idea that any sufficiently well-specified problem is a solution to that problem.
Instead of providing a set of algorithms to solve the problem, the developer would produce a detailed description, and the compiler would turn it into a program.
The language that emerged from this project was a variant of Prolog, although initial work in Prolog had begun in the early ’70s. While an interesting language in its own right, and very useful in certain AI-related activities, it has failed as a general purpose language.
The derivation mechanism used to solve the Prolog programs is very inefficient for a great many problems, making it produce very inefficient code without a lot of tweaking—exactly what the language was designed to avoid.