C120.3 PROGRAMMING (III) (Term 3)
Prof. Murray Shanahan
Objectives
To develop an understanding of declarative programming as a generalisation of functional programming. To be able to use Prolog, a logic programming language, to develop small applications with an artificial intelligence dimension.
Contents
Introduction to logic programming using Prolog: logic programming as controlled
inference, syntax of Prolog terms and rules, simple database program and queries
to it. Recursive description of Prolog's query evaluator. Arithmetic in Prolog.
Unification: Prolog's unification algorithm compared with "correct"
unification. Prolog evaluation as depth-first construction of a search tree.
Introduction to meta-level programming in Prolog.