Kdy a kde: Ut 12:20 v S6
Sylabus.
Zapocet je za predneseni referatu nebo za zapoctak demonstrujici nekterou
z prednesenych technik.
Obsah prednasek:
- (27.2.) Opakovani zakladnich vlastnosti Haskellu. Typovy system a typove tridy.
Zdroje: typove tridy,
Existencialni typy,
viceparametricke tridy a funkcionalni zavislosti,
aritmetika v typech.
- (6.3.) Monady I -- uvod, zakladni monady na prikladu prekladace. Zdroje: Wadleruv clanek o interpretru napsanem pomoci monad,
tutorial o monadach.
- (13.3.) Monady II. -- parsovani; monady ST a IO. Zdroje: Parser jako funkce,
parser jako struktura,
monada ST.
- (20.3.) Priklady pouziti zanorenych jazyku (financni smlouvy, modelovani obvodu).
Concurrency, Software Transactional Memory. Zdroje: Smlouvy,
obvody (Lava),
STM.
- (27.3.) Genericke programovani. Zdroje: Scrap your boilerplate,
Derivable type classes, Template Meta-programming for Haskell.
- (3.4.) Funkcionalni datove struktury. Zdroje: Okasakiho disertacka,
persistentni pole, induktivni grafy,
lina pole.
- (10.4.) Kompilace funkcionalnich jazyku, profilovani a ladeni. Zdroje: Hat -- debugger,
Profilovani, Vnitrnosti (stareho) GHC,
Optimalizace (inlinovani, strictness analyza).
- (17.4.) Presunuto na 23.4.
- (23.4. 9:00) Referat o arrows (Milan Straka; Arrows and computation,
Generalising monads to arrows).
- (24.4.) Referaty -- reaktivni programovani (Ludek Cigler; Yampa arcade),
monady pro nedeterminismus (Ondrej Kuncar; Backtracking, Interleaving, and Terminating Monad Transformers).
- (1.5.) Svatek.
- (8.5.) Svatek.
- (15.5.) Referaty -- QuickCheck (Ondrej Sykora; QuickCheck: A Lightweight Tool for Random Testing of Haskell Programs),
FFI (Petr Skoda; specifikace).
- (22.5.) Referaty -- Korutiny pomoci continuation passing (Ondrej Zajicek; priklad), Pan(cito) (Tomas Gavenciak; Functional Images).
Priklady z prednasek.
Referaty:
- Milan Straka, Arrows: Arrows and computation,
Generalising monads to arrows).
- Ondrej Kuncar, Nedeterminismus, logicke programovani v Haskellu: Backtracking, Interleaving, and Terminating Monad Transformers
- Ludek Cigler, Reaktivni programovani: Yampa arcade
-
Tomáš Caithaml, Monad transformers: Monad Transformers and Modular Interpreters;
odpadl.
- Ondrej Sykora, QuickCheck: QuickCheck: A Lightweight Tool for Random Testing of Haskell Programs
- Petr Skoda, FFI: specifikace, Calling Hell From Heaven and Heaven From Hell
- Ondrej Zajicek,
Fudgets: FUDGETS Graphical User Interfaces and I/O in Lazy Functional Languages -- nahrazeno implementaci korutin pres
continuation passing.
- Tomas Gavenciak, Pan: Functional Images
Literatura: