Popis předmětu - AD4B33FLP
| AD4B33FLP | Funkcionální a logické programování | ||
|---|---|---|---|
| Role: | Rozsah výuky: | 14KP+6KC | |
| Katedra: | 13136 | Jazyk výuky: | CS |
| Garanti: | Zakončení: | Z,ZK | |
| Přednášející: | Kreditů: | 6 | |
| Cvičící: | Semestr: | L | |
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á |
| 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+2Pozná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 15.12.2025 17:51:41, semestry: L/2024-5, Z,L/2025-6, Z,L/2026-7, 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) |