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.