Charles Explorer logo
🇨🇿

Neprocedurální programování

Předmět na Matematicko-fyzikální fakulta |
NPRG005

Sylabus

* Logické programování v jazyce Prolog.

Tvar programu a jeho interpretace, unifikace, backtracking.

Deklarativní a procedurální sémantika programu.

Práce se seznamy a s rekurzivními datovými strukturami.

Standardní predikáty a jejich použití. Aritmetika. Definice operátorů.

Řez a negace. Efektivita programů v Prologu, neúplně definované datové struktury.

Aplikace logického programování v umělé inteligenci.

* Funkcionální programování, základy lambda kalkulu.

Tvar programu v jazyce Haskell. Dvojrozměrná syntax, líné vyhodnocení.

Definice funkce, rekurze, porovnávání se vzorem. Stručné seznamy.

Definice typů a datových struktur, polymorfismus, typové třídy a instance.

Funkce vyšších řádů. Nekonečné datové struktury. Monády, vstup a výstup.

Anotace

Předmět je věnován principům logického a funkcionálního programování, které jsou vyloženy prostřednictvím programovacích jazyků Prolog a Haskell. Funkcionální aspekty multiparadigmatických jazyků jsou ilustrovány na příkladu jazyka Python.