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
   196   197   198   199   200   201   202   203   204   205   206