Prerequisite:CSE203
The course will present the paradigm of
Constraint Logic Programming from
its logical foundations for programming
with relations, to its current applications.
From logic programming and the early
days of artificial intelligence, towards
the holy grail of programming simply by
modelling, the students will learn how to
use a recent dialect of Prolog for relational
databases, knowledge representation,
automated deduction and combinatorial
problem solving. The balance between
declarative programming and efficiency,
between clean semantics and expressiveness
will be of particular interest, and will
lead us into looking at how things work
internally in a Prolog bytecode compiler
(Warren Abstract Machine, indexing…)
on practical examples.




The course will present the paradigm of Constraint Logic Programming from its logical foundations for programming with relations, to its current applications. From logic programming and the early days of artificial intelligence, towards the holy grail of programming simply by modelling, the students will learn how to use a recent dialect of Prolog for relational databases, knowledge representation, automated deduction and combinatorial problem solving. The balance between declarative programming and efficiency, between clean semantics and expressiveness will be of particular interest, and will lead us into looking at how things work internally in a Prolog bytecode compiler (Warren Abstract Machine, indexing, …) on practical examples.