Přehled studia |
Přehled oborů |
Všechny skupiny předmětů |
Všechny předměty |
Seznam rolí |
Vysvětlivky
Návod
Anotace:
Předmět podává úvod do technik funkcionálního programování v jazycích LISP (přesněji v jeho implementaci SCHEME) a HASKELL a logického programování v jazyce PROLOG. Oba jazyky jsou deklarativní v tom smyslu, že programátor symbolicky popíše problém, který má být řešen, místo výčtu konkrétní posloupnosti akcí, které má počítač provést. V PROLOGu je problém popsán vlastnostmi objektů a vztahy mezi nimi vyjádřenými v logice. V LISPu má popis problému formu definice funkcí. Oba jazyky nalezly významné aplikace v umělé inteligenci, např. v agentových systémech či v symbolickém strojovém učení.
Výsledek studentské ankety předmětu je zde:
A4B33FLP
Cíle studia:
Seznámit se s principy funkcionálním a logickým programováním v jazycích LISP resp. PROLOG.
Osnovy přednášek:
1. | | Úvod do deklarativních programovacích jazyků. Srovnání s klasickými imperativními jazyky. Úvod do programování pro umělou inteligenci. |
2. | | LISP a Scheme: základní jazykové idiomy, atomy, seznamy, rekurze |
3. | | Scheme: lambda abstrakce, vestavěné funkce, pokročilé datové struktury |
4. | | Scheme: vztahy mezi iteracemi, optimizace rekurze zaručená jazykovým standardem, vestavěné funkce vyšších řádů. |
5. | | Scheme: prohledávání stavového prostoru, aplikace v umělé inteligenci |
6. | | Haskell: typy, vzory, vestavěné funkce, lambda abstrakce |
7. | | Haskell: prokročilé vlastnosti jazyka ve srovnání se Scheme |
8. | | Prolog: fakta, pravidla, dotazy, rekurze, odpovídání dotazů |
9. | | Funkce, unifikace, operace se seznamy |
10. | | Prolog a logika: klauzule, Herbrandova báze, interpretace, model, předpoklad uzavřeného světa, rozhodnutelnost |
11. | | Řez a negace, mimologické operátory, aritmetika |
12. | | Kombinatorické prohledávání v Prologu |
13. | | Programování s omezujícími podmínkami |
14. | | Programovací praktiky, ladění, vestavěné predikáty |
Osnovy cvičení:
1. | | Scheme. Seznámení se Scheme a jeho prostředím. Ladění. Základní příklady. |
2. | | Rekurze, akumulátor. |
3. | | Lambda abstrakce |
4. | | Rekurze, funkce vyššího řádu |
5. | | Haskell |
6. | | Prolog jako databáze, fakta, pravidla, dotazy |
7. | | Rekurze, ladění programů |
8. | | Unifikace, operace se seznamy |
9. | | Operace se seznamy, operace řezu a negace |
10. | | Prohledávací algoritmy |
11. | | Prohledávací algoritmy |
12. | | Programování s omezujícími podmínkami |
13. | | Programování s omezujícími podmínkami |
14. | | Zápočy |
Literatura:
P. | | Flach: Simply Logical, John Wiley 1994 |
V. | | Mařík et al: Umělá |
inteligence I, II, Academia 1993
P. | | Jirků, P. Štěpánek, O. Štěpánková: Programování v Jazyku Prolog, SNTL 1991 |
I. | | Bratko: Prolog programing for AI, Addison Wesley 2001 (3rd edition) |
Požadavky:
Diskrétní matematika, Logika a grafy, Programování 1+2
Poznámka:
Rozsah výuky v kombinované formě studia: 14p+6c |
Klíčová slova:
LISP, PROLOG, funkcionální programování, logické programování
Předmět je zahrnut do těchto studijních plánů:
Plán |
Obor |
Role |
Dop. semestr |
Stránka vytvořena 22.7.2024 17:51:06, semestry: Z,L/2023-4, Z,L/2024-5, připomínky k informační náplni zasílejte správci studijních plánů |
Návrh a realizace: I. Halaška (K336), J. Novák (K336) |