Conceived in the early 1970s, Prolog, most likely a combination of the words program and logic, is one of the earliest computer programming languages. In part because it is very simple code, using first order logic and little computation, it is still in popular use. The original instruction set has been considerably enlarged and developed into many variants because it is particularly well suited to process language. These two primary attributes of the program provide the processing for applications such as artificial intelligence and automated telecommunications.
Prolog uses formal, first order logic. The instructions uploaded to a computer are firm; they do not have fuzzy, computational weighting. In expression, the syntax of the language is a finite set of rules and the semantics are defined, usually by sets such as single descriptors, multiple lists and strings, or by a range such as numeric sequences.
Along with some better known coding such as hypertext markup language (HTML), Prolog is in a class of software commonly called declarative programming languages, that characteristically use the simple statement “X equals Y,” defined as a “term.” A computer is told what to do; it is not instructed to calculate on its own how to get there. The computer is given a set of facts with a “predicate,” and relations, defined as a “clause,” from which an input query should yield a true versus false output conclusion. It does not execute an algorithm, but rather derives a simple answer by adding and subtracting, or negating, from its known set of definitions. Computing in Prolog is used to test and prove theories and their underlying assumptions, from advanced mathematics to biology to philosophy.
One of the cognitive theories of intelligence is that there is a large but finite lexical store of information in the brain which is retrieved, processed, and fed back, resulting in greater complexity or simplicity of the information. With increasing memory capacity and fast access, this is the dominant paradigm that has driven computer science’s holy grail — artificial intelligence. What is key according to many in the field is interface and language. Prolog programming can be used to create GUIs, the graphical user interface pioneered by Apple®, by simply defining visual symbols. It can also be used to read, translate, and create facial expression.
Computational linguistics is substantially more difficult, and while Prolog has advanced over the years to incorporate, for example, the unique grammatical principles of some foreign languages, many researchers question whether it effectively represents language. For limited expert systems, such as computerized voice-recognition technical support phone lines, Prolog programming is used to some degree of effectiveness. It can also be integrated into higher order logic software — quantifying languages such as C+ or java — but compression and portability remain problems that endure for this data-intensive programming language.