Półkurs języka Prolog

Język wykładowy Polski
Semestr Letni
Status Poddana pod głosowanie
Opiekun Tomasz Wierzbicki
Liczba godzin 16 (wyk.) 16 (prac.)
Rodzaj K1 - kurs podstawowy
ECTS 3
Polecany dla I roku Nie
Egzamin Nie

Opis przedmiotu:

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.