|
|
pl:prolog:prolog_lab [2012/02/29 14:25] ikaf |
pl:prolog:prolog_lab [2019/06/27 15:50] |
====== Laboratorium z języka Prolog ====== | |
===== Cele ===== | |
* Przedstawienie najważniejszych elementów programowania w Prologu. | |
* Adresatami są głównie studenci kierunków informatycznych. | |
* Laboratorium jest realizowane w 2 częściach: 6 zajęć na najważniejsze tematy + 4-6 zajęć na tematy fakultatywne | |
| |
--- //[[gjn@agh.edu.pl|Grzegorz J. Nalepa]] 2008/11/03 12:24// | |
| |
===== Autorzy ===== | |
- lab 1-6 (c) 2005-2009 by [[gjn@agh.edu.pl|Grzegorz J. Nalepa]] | |
- poprawki, uwagi, rozszerzenia, wstępna wiki-fikacja, lab 6-7 (c) 2007-2009 by [[wojnicki@agh.edu.pl|Igor Wojnicki]] | |
- poprawki, pomysły, reorganizacja (c) 2008-2009 by Weronika Furmańska i Piotr Hołownia | |
| |
===== Przypowieść ===== | |
| |
Jak odpowiedzą programiści pytani o drogę: | |
| |
* Piszący w C++: Pójdzie pan do tego skrzyżowania, skręci pan w prawo, potem prosto, prosto, prosto, w lewo i już pan jest na miejscu. | |
* Piszący w Pascalu: Pójdzie pan do tego skrzyżowania, skręci pan w prawo w ulice: Mickiewicza, dalej ulica: Prusa, a potem skręci pan w lewo w: Żeromskiego i już pan jest na miejscu. | |
* Piszący w Asemblerze: Pójdzie pan do tego kiosku, kupi pan bilet za złotówkę, pójdzie pan na tamten przystanek i wsiądzie pan do autobusu, wysiądzie na trzecim przystanku, przejdzie pan przejściem podziemnym i już pan jest na miejscu. | |
* Piszący w Prologu: Widzi pan tamten wysoki budynek z wielkim czerwonym szyldem? To tam. | |
* Piszący w Lispie: Dojdzie pan do tego skrzyżowania, a dalej się pan zapyta. | |
| |
===== Tematy ===== | |
| |
==== Część główna ==== | |
| |
- [[.:prolog_lab:wprowadzenie|Wprowadzenie]] | |
- [[.:prolog_lab:programy|Podstawy programowania]] | |
- [[.:prolog_lab:listy1|Praca z listami (cz. 1)]] | |
- [[.:prolog_lab:listy2|Praca z listami (cz. 2)]] | |
- [[.:prolog_lab:reprezentacja_wiedzy|Reprezentacja wiedzy]] | |
- [[.:prolog_lab:prolog_lab_metaprog|Meta programowanie]] | |
| |
==== Część fakultatywna ==== | |
| |
* [[.:prolog_lab:prolog_lab_system|Integracja z systemem operacyjnym]] (**O**) | |
* [[.:prolog_lab:prolog_lab_xpce|Tworzenie GUI w XPCE]] (**P**) | |
* [[.:prolog_lab:prolog_lab_graphsearch|Planowanie tras przejazdu]] (**L**) | |
* [[.:prolog_lab:prolog_lab_http|Integracja z HTTP/WWW]] (**H**) <- //uwaga: wymaga O// | |
* [[.:prolog_lab:prolog_lab_semweb|Integracja z SemWeb]] (**S**) <- //przydatna wiedza z O (graphviz)// | |
* [[.:prolog_lab:prolog_lab_dcg|Definite Clause Grammars]] (**D**) | |
* [[.:prolog_lab:ml:prolog_lab_uczenie|Podstawy uczenia maszynowego]] (**ML**) | |
| |
---- | |
| |
* [[.:prolog_lab:prolog_lab_java|Integracja z Java]] (**J**) <- //uwaga: wymaga M// | |
* [[.:prolog_lab:prolog_lab_rdbms|Integracja z RDBMS]] (**R**) | |
* ([[.:prolog_lab:prolog_lab_ansic|Integracja z C]] (C)) | |
| |
===== Przydatne materiały ===== | |
| |
==== Biblioteka programów w Prologu ==== | |
W [[prolog:pllib:start|dostępnej tutaj]] bazie przykładów zebrano ponad 300 przykładów programów w Prologu ilustrujących różne techniki programistyczne i rozwiązania istotnych problemów. | |
==== Podręczniki wprowadzające ==== | |
| |
* Dave Stuart Robertson, //[[http://www.dai.ed.ac.uk/groups/ssp/bookpages/quickprolog/quickprolog.html|Quick Prolog]]// | |
* Patrick Blackburn, Johan Bos, Kristina Striegnitz, //[[http://www.learnprolognow.org/|Learn Prolog Now!]]// | |
* J. R. Fisher, //[[http://www.csupomona.edu/~jrfisher/www/prolog_tutorial/contents.html|Prolog Tutorial]]// | |
* Colin Barker, //[[http://perso.orange.fr/colin.barker/lpa/lpa.htm|LPA Examples]]// | |
| |
==== Książki o Prologu, SE, LP ==== | |
| |
* Dennis Merritt, //[[http://www.amzi.com/AdventureInProlog|Adventure In Prolog]]// | |
* Dennis Merritt, //[[http://www.amzi.com/ExpertSystemsInProlog|Building Expert Systems in Prolog]]// | |
* Ulf Nilsson and Jan Małuszyński, //[[http://www.ida.liu.se/~ulfni/lpp|Logic, Programming and Prolog]]// (2ed). | |
* Michael Covington et. al., //[[http://web.ncf.ca/andre/publications/PPID.pdf|Prolog Programming in Depth]]//. | |
| |
==== Kompilatory Prologu ==== | |
| |
* Jan Wielemaker et. al., [[http://www.swi-prolog.org|SWI-Prolog]] | |
* Universidade de Porto, [[http://www.dcc.fc.up.pt/~vsc/Yap/|YAP Prolog]] | |
* [[http://xsb.sourceforge.net/|XSB]] | |
* Daniel Diaz, [[http://gnu-prolog.inria.fr|GNU-Prolog]] | |
| |
==== Standardy pisania kodu w Prologu ==== | |
* MICHAEL A. COVINGTON, ROBERTO BAGNARA, RICHARD A. O’KEEFE, JAN WIELEMAKER, SIMON PRICE, //[[http://www.ai.uga.edu/mc/plcoding.pdf|Coding guidelines for Prolog]]//, Cambridge University Press, 2011. | |