Logic Programming (326.121, 326.122)
The participants of the course will get introduced to logic programming, study its logical foundations and computational model, and learn practical programming in Prolog.
There will be several programming assignments and quizzes. Their marks will result in the final grade.
Winter Semester 2021.
Number: | 326.121 and 326.122 |
Title: | Logic Programming |
Lecturer: | Temur Kutsia |
Time: | Wednesday 16:15-18:00 |
Room: | S2 054 |
Language: | English |
First meeting: | October 6 |
Registration: | Via the KUSSS system |
Grading: | Assignments and quizzes during the semester |
Book:
-
W. F. Clocksin and C. S. Mellish. Programming in Prolog. Fifth edition. Springer. 2003.
Contents:
- 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.
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.
-
Efficiency issues - slides, to print: 1up, 2up, 4up.
-
Unification - slides, to print: 1up, 2up, 4up.
-
Computational model - slides, to print: 1up, 2up, 4up.
-
Examples - slides, to print: 1up, 2up, 4up.
-
Manipulating programs - slides, to print: 1up, 2up, 4up.
-
Using grammar rules - slides, to print: 1up, 2up, 4up.
Assignments:
- Assignments will appear in the course moodle page and are for individual work.
Books, papers, slides:
-
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).
Some interesting on-line resources: