Krótki kurs programowania w języku
[Prolog](https://pl.wikipedia.org/wiki/Prolog_\(j%C4%99zyk_programowania\)).
W pierwszej połowie semestru (8 tygodni) odbywają się klasyczne stacjonarne zajęcia (wykład i pracownia, po 2 godziny tygodniowo). W drugiej części semestru (7 tygodni) studenci piszą samodzielnie nieco większy projekt programistyczny, w porze wykładu odbywają się prezentacje projektów, a w porze pracowni — konsultacje w sprawach projektów.
##### Orientacyjny program wykładu
1. Maszyna abstrakcyjna Prologu. Atomy, predykaty, fakty, klauzule, zapytania. Przykład: relacje rodzinne. Drzewo przeszukiwania. Niepowodzenie, sukces i nawroty.
2. Struktury w Prologu. Funktory. Listy w Prologu. Podstawowe predykaty działające na listach: append/3, member/2 i reverse/2.
3. Tryby argumentów predykatów. Asymetria predykatu reverse/2. Dalsze przykłady predykatów.
4. Odcięcie i negacja.
5. Arytmetyka w Prologu. Operacje wejścia/wyjścia.
6. Struktury otwarte. Listy różnicowe. Rekursja ogonowa, indeksowanie klauzul i LCO.
7. Gramatyki bezkontekstowe. BNF. Metody opisu składni języków programowania. Składnia konkretna i abstrakcyjna. Parsery i leksery. Parsing i unparsing. Gramatyki jednoznaczne. Wyrażenia. Notacje infiksowa, postfiksowa, prefiksowa i miksfiksowa dla wyrażeń. Warianty notacyjne. Parsowanie wyrażeń postfiksowych z użyciem stosu. Operatory infiksowe, opuszczanie nawiasów, priorytety i łączność. Predykat op/3. Jednoznaczne gramatyki dla wyrażeń infiksowych. Gramatyki klauzul oznaczonych. Konstruowanie interpreterów w Prologu. Przykłady.
8. Programowanie logiczne.
##### Literatura
1. Michael A. Covington, Donald Nute, and Andre Vellino, Prolog Programming in Depth, Prentice Hall, 1997.
2. William F. Clocksin, Christopher S. Mellish, [Programming in Prolog: Using the ISO Standard](http://www.springer.com/computer/programming/book/978-3-540-00678-7), Springer, 2003. Tłum. polskie: [Prolog. Programowanie](http://helion.pl/ksiazki/prprol.htm), Helion, 2003.
3. Leon Sterling and Ehud Shapiro, [The Art of Prolog](http://mitpress.mit.edu/books/art-prolog), MIT Press, 1994.
4. Pierre Deransart, Abdelali Ed-Dbali, Lauren Cervoni, [Prolog: the standard](http://www.springer.com/computer/programming/book/978-3-540-59304-1), Springer, 1996.
5. Pierre Deransart and Jan Małuszyński, [A Grammatical View of Logic Programming](http://mitpress.mit.edu/books/grammatical-view-logic-programming), MIT Press, 1993.
6. Ulf Nilsson and Jan Małuszyński, [Logic, Programming and Prolog](http://www.ida.liu.se/%7Eulfni/lpp/), Wiley, 1997.