Logic Programming
- Introduction to logic programming.
- Understanding logical foundations and computational model.
- Learning practical programming in Prolog.
The final grade will depend on the assignment results and on the programming project. Instead of the project, students may choose the final exam at the end of the semester.
Winter Semester 2016.
- Number: 326.028
- Title: Logic Programming
- Lecturer: Temur Kutsia
- Time: Wed 16:15-18:00
- Place: S3 058
- Language: English
- First lecture: October 5.
Please register for the course via the
KUSSS system.
- Logical foundations. Introduction to Prolog programming.
- Questions, variables, conjunctions, rules, goals.
- Prolog syntax. Characters, operators, equality and matching, arithmetic.
- Using data structures. Programming techniques on Prolog (Mapping, recursion, accumulators, difference structures).
- Backtracking, generating multiple solutions, the cut.
- Selected examples.
- Unification, computational model of logic programs.
- Grammar rules (DCG).
- Efficiency issues.
- Related frameworks: Constraint logic programming, answer set programming.
-
Book: W. F. Clocksin and C. S. Mellish. Programming in Prolog. Fifth edition. Springer. 2003.
- Slides:
-
Introduction - slides, to print: 1up, 2up, 4up.
-
Logical foundations - slides, to print: 1up, 2up, 4up.
-
Questions, variables, conjunctions, rules, goals - slides, to print: 1up, 2up, 4up.
-
Prolog syntax - slides, to print: 1up, 2up, 4up.
-
Data structures, mapping, recursion - slides, to print: 1up, 2up, 4up.
-
Data structures, comparison, joining, accumulators, difference structures - slides, to print: 1up, 2up, 4up.
-
Backtracking, the cut - slides, to print: 1up, 2up, 4up.
-
Unification - slides, to print: 1up, 2up, 4up.
-
Computational Model - slides, to print: 1up, 2up, 4up.
-
Using Grammar Rules - slides, to print: 1up, 2up, 4up.
-
Efficiency issues - slides, to print: 1up, 2up, 4up.
-
Examples - slides, to print: 1up, 2up, 4up.
-
Manipulating programs - slides, to print: 1up, 2up, 4up.
- Assignments:
Assignments will appear here and are for individual work. They should be submitted by email. There will be three assignments in total. Please write LP16-AS1, LP16-AS2, LP16-AS3, in the subject of your mail when you submit assignments.
- Programs:
- Additional material:
-
M. A. Covington, R. Bagnara, R. A. O'Keefe, J. Wielemaker, S. Price. Coding Guidelines for Prolog. Theory and Practice of Logic Programming. 12(6): 889-927 (2012) (Highly recommended).
-
M. A. Covington. Efficient Prolog: A Practical Guide. Research Report AI-1989-08, The University of Georgia, Athens, Georgia, 1989.
-
W. F. Clocksin. Prolog Programming (PowerPoint format).
-
J. Lloyd. Foundations of Logic Programming, second edition. Springer, 1987.
-
R. O'Keefe. The Craft of Prolog. MIT Press, 1990.
-
Open lists and difference lists. A section from Paul Brna's online Prolog book.
-
P. Gloess. Constraint Logic Programming (PowerPoint format).
-
System(s):
-
Some interesting on-line resources:
Maintained by Temur Kutsia.