Page 201 - DCAP506_ARTIFICIAL_INTELLIGENCE
P. 201
Unit 14: Prolog
alternatives to the imperative style: the functional and the logical programming style. Both are Notes
based on mathematical formalisms, namely recursive function theory and formal logic. The
first practical and still most widely used AI programming language is the functional language
Lisp developed by John McCarthy in the late 1950s. Lisp is based on mathematical function
theory and the lambda abstraction. A number of important and influential AI applications have
been written in Lisp so we will describe this programming language in some detail in this
article. During the early 1970s, a new programming paradigm appeared, namely logic
programming on the basis of predicate calculus. The first and still most important logic
programming language is Prolog, developed by Alain Colmerauer, Robert Kowalski and
Phillippe Roussel. Problems in Prolog are stated as facts, axioms and logical rules for deducing
new facts. Prolog is mathematically founded on predicate calculus and the theoretical results
obtained in the area of automatic theorem proving in the late 1960s.
14.1.1 AI Language Prolog
Prolog is a logical and a declarative programming language. The name itself, Prolog, is short for
PROgramming in LOGic. Prolog’s heritage includes the research on theorem provers and other
automated deduction systems developed in the 1960s and 1970s. The inference mechanism of
Prolog is based upon Robinson’s resolution principle (1965) together with mechanisms for
extracting answers proposed by Green (1968). These ideas came together forcefully with the
advent of linear resolution procedures. Explicit goal-directed linear resolution procedures, such
as those of Kowalski and Kuehner (1971) and Kowalski (1974), gave impetus to the development
of a general purpose logic programming system. The “first” Prolog was “Marseille Prolog”
based on work by Colmerauer (1970). The first detailed description of the Prolog language was
the manual for the Marseille Prolog interpreter (Roussel, 1975).
The other major influence on the nature of this first Prolog was that it was designed to facilitate
natural language processing. Prolog is the major example of a fourth generation programming
language supporting the declarative programming paradigm. The Japanese Fifth-Generation
Computer Project, announced in 1981, adopted Prolog as a development language, and thereby
focused considerable attention on the language and its capabilities.
Properties of Prolog as a Programming language:
There are no explicit types or classes in this
They are rule-based, founded on first-order logic
There is high expressibility: functionality per program line
Interactive, experimental programming
Background for Prolog
Prolog can be understand as PROgramming in LOGic:
Syntax: subset of 1.-order logic
Declarative semantics: Logical consequence
Procedural semantics: Resolution, proof rule with unification; Robinson, 1965
A. Colmerauer & co. (Marseille), ca. 1970: “Prolog” D.H.D. Warren: Efficient compiler,
abstract machine „WAM‰, 1975,
Language made known by R. Kowalski “Logic for Problem solving”, 1979.
LOVELY PROFESSIONAL UNIVERSITY 195