Hide menu

TDDD08 Logic Programming

Course information


The course is given in English. (Tutorials may be given in Swedish, if all participants are fluent in Swedish). Exams are given in English but answers can be given in Swedish or English.

Course literature

  • U. Nilsson and J. Maluszynski. Logic, Programming and Prolog (2ed),
    (previously published by John Wiley & Sons, 1995).
    The book is available electronically but DON'T jam up the printers.
  • Supplementary chapter on CLP(fd).
  • Lab exercises and instructions here.

Additional non-required reading

  • Prolog programming: Sterling och Shapiro. The Art of Prolog, 2ed, MIT-Press.
  • Theory:
    K. Apt. From Logic Programming to Prolog. Prentice-Hall.
    J. Lloyd. Foundations of Logic Programming, 2ed, Springer-Verlag.
    W. Drabent. Logic + control: An example. In Technical Communications of ICLP'12.


An introductory course in logic (TDDC36 or similar) and discrete mathematics. The course also assumes programming experience.


The course should provide knowledge in logic programming including both theoretical notions as well as practical programming practice in the programming language Prolog. Theoretical notions, which are the basis of Prolog, are covered at lectures. Declarative and procedural semantics is discussed as well as how to deal with negation. Application areas (such as deductive databases and grammars) are also covered. Another topic addressed at the lectures is constraints and constraint logic programming. The tutorials address more pragmatic issues -- databases, recursive datastructures (e.g. lists) and abstract data types are discussed, as well as how to write efficient Prolog code.The laboratory classes focus on pratical problem solving in the above areas using the programming language Prolog.


To pass the course you must pass both the written examination and complete all laboratory execises. There are two re-examinations during the academic year.

Page responsible: Wlodek Drabent
Last updated: 2014-09-08