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.
- Teaching coordinator: Blazy Olivier
- Teaching coordinator: Fages François
- Teaching coordinator: Haucourt Emmanuel