Current Use Of The Prolog Programming Language Into Real World Applications
Current Use Of The Prolog Programming Language Into Real World Applications
Abstract
The aim of this assignment is to get familiarized with current trends on the use of the Prolog programming language in real world applications. This brief overview of the forthcoming standard concentrates on issues of general interest: for example, concepts such as unification and a user-defined syntax are being standardized for the first time. Their definitions can and should be re-used in the standard for any other language which includes these concepts.
Prolog is unique among programming languages: a Prolog program may be seen as a relational database of facts and logical rules, but Proiog may also be considered as an algorithmic language where the flow of control is implicit, and the processor performs a depth-first search among all possible cases until a successful result is obtained.
Prolog has been widely implemented and used for a variety of applications including expert systerns, simulation, and prototyping. The earliest practical implementations were developed in Edinburgh and Marseilles, but many other implementations have been made, and many research projects extend Prolog, for example, to provide parallel processing or to solve constraints.
An international standard is being defined so that users can adopt Prolog with confidence knowing that programs, programmers and packages will be interchangeable among different implementations.
Other changes have also been made where there are good reasons, for example (a) Generalization: for example the character set and input/output are no longer restricted to ASCII, and text processing need no longer be implemented as operations on an unambiguous but less than clear list of the integer codes of ASCII characters.
(b) Additional functionality, where it is agreed to be necessary: for example exception handling.
(c) Obsolete features are excluded from the standard, for example teletype input/output, and features for when no lower case characters are available.
(d) Em'ironmental features, for example debugging facilities, are also excluded from the standard because they need to vary according to the hardware or operating system.
Progress
The standardization process started in Britain (BSI) and France (AFNOR) towards the end of 1984, with the intention that work would continue internationally as soon as a New Work Item Proposal was approved. For reasons outside the control of BSI and AFNOR (see Paper 12 in this set for more of the background to this), an international working group, ISO/IEC JTC1/SC22 WG17, was not formed until the end of 1987. The result was that delays occurred because many decisions which had been taken by the standards groups in BSI and AFNOR were re-opened and re-discussed.
Many existing systems were also extending Edinburgh Prolog in various ways, and discussions sometime arose whether to include a particular extension in standard Prolog, and if so, which variant to adopt.
Standard syntax
One of the successes of standardization has been to resolve these problems and define the syntax precisely. The draft standard (a) defines the concrete syntaxes and abstract syntax corresponding to each term;