|
|
|
||
Poslední úprava: T_KTI (10.05.2011)
|
|
||
Poslední úprava: RNDr. Petr Pudlák, Ph.D. (11.05.2011)
Naučit teoretické základy funkcionálního programování a jejich uplatnění, zejména v prostředí jazyka Haskell. Upozornit na možnosti zavádění pojmů vysoké abstrakce ve funkcionálních jazycích, které umožňují obecná řešení širokého spektra úloh. Přínos typových systémů pro korektnost programů. |
|
||
Poslední úprava: RNDr. Jan Hric (12.06.2019)
Ústní zkouška. Požadavky ústní zkoušky odpovídají sylabu předmětu v rozsahu, v němž byl prezentován na přednášce. |
|
||
Poslední úprava: T_KTI (25.04.2016)
|
|
||
Poslední úprava: T_KTI (25.04.2016)
Úvod do lambda kalkulu, funkcionálního programování a programovacího jazyka Haskell. Operační sémantika funkcionálních programů, beta-redukce a normální formy výrazů (NF, HNF, WHNF).
Funkce jakožto základní prvek funkcionálních jazyků. Rekurzivní funkce, funkce vyšších řádů, kombinátory.
Churchovo kódování datových struktur. Algebraické datové struktury. Rozpoznávání vzorů (pattern matching).
Typované lambda kalkuly. Intuicionistická logika, systém přirozené dedukce a souvislost s typovanými lambda kalkuly. Curry-Howardova korespondence. Základní pojmy kombinatorické logiky. Závislé typy.
Odvozování typů výrazů. Hindley-Milnerův typový systém a algoritmus pro odvozování principiálního (nejobecnějšího) typu. Generování programů požadovaného typu a jeho aplikace.
Ad-hoc polymorfismus - typové třídy. Souvislost s logickým programováním.
Rekurzivní, nekonečné, induktivní a koinduktivní datové struktury. Totální funkcionální programování. Typové systémy popisující dokazatelně totální funkce - Gödelův Systém T a Girard-Reynoldsův Systém F.
Základní pojmy z teorie kategorií v kontextu funkcionálních jazyků. Funktory, Kleisliho kategorie, monády.
Dále volitelně, podle dostupného času:
Typové systémy pro práci s vedlejšími efekty. Monády, unikátní typy, lineární typy a lineární logika.
Rozšíření standardních typových systémů používaná v různých funkcionálních jazycích. Typové systémy v imperativních jazycích. Generalizované algebraické datové typy.
Funkcionální reaktivní programování (FRP).
Stránka předmětu: http://tomkren.cz/fp/, starší verze |