Assigned: 17 Sept



|Assigned: 19 Nov.2001 |CS536 Written Assignment |

|Due: 10 Dec 2001 |Project No.4 |

Write a program to interpret a subset of Prolog. Prolog is a logical language. Prolog encourages the use of a single uniform database. Because it is based on the idea of a database, Prolog is relational. A relationship in Prolog is a logical predicate (a predicate in first order predicate logic), with several arguments, relationship that may be true or false. Prolog provides logical variables instead of ordinary variables. A logical variable is bound by unification rather than by assignment. Once bound, a logical variable can never change in the same context. Prolog provides automatic backtracking; every query leads to a search for relations in the database that satisfy the query. If there are several such relations, they are considered one at a time.

Prolog assertions are called clauses and they are divided into two types: facts, which state a relationship that holds between some objects, and rules, which are used to deduce new facts based on existing ones (based on conditions).

The following examples use a (suggested) syntax that is not exactly the one of Prolog. The syntax is such that it allows the Prolog interpreter to be embedded in Lisp or Scheme.

We will use ................
................

In order to avoid copyright disputes, this page is only a partial summary.

Google Online Preview   Download