PředmětyPředměty(verze: 837)
Předmět, akademický rok 2018/2019
   Přihlásit přes CAS
Pokročilé techniky funkcionálního programování - NPRG040
Anglický název: Advanced Functional Programming
Zajišťuje: Informatický ústav Univerzity Karlovy (32-IUUK)
Fakulta: Matematicko-fyzikální fakulta
Platnost: od 2013
Semestr: letní
E-Kredity: 3
Rozsah, examinace: letní s.:0/2 Z [hodiny/týden]
Počet míst: neomezen
Minimální obsazenost: neomezen
Stav předmětu: zrušen
Jazyk výuky: čeština
Způsob výuky: prezenční
Garant: doc. Mgr. Zdeněk Dvořák, Ph.D.
Třída: Informatika Mgr. - volitelný
Kategorizace předmětu: Informatika > Programování
Anotace -
Poslední úprava: T_KAM (25.04.2008)
Techniky funkcionálního programování (kombinátory, monády, continuation passing style, ....). Funkcionální datové struktury. Kompilace, optimalizace a ladění programů ve funkcionálních programovacích jazycích, zejména v Haskellu. Část přednášky proběhně formou referátů. Zápočet bude udělován za přednesení referátu nebo za zápočtový program demonstrující některou z popsaných technik. Předpokládají se znalosti Haskellu na úrovni předmětu NPRG005
Cíl předmětu -
Poslední úprava: T_KAM (25.04.2008)

Cílem semináře je seznámit studenty s technikami funkcionálního programování a prohloubit tak jejich programovací schopnosti, především v oblasti abstrakce a modularity.

Literatura -
Poslední úprava: T_KAM (25.04.2008)

Jeremy Gibbons and Oege de Moor (eds.): The Fun of Programming, Palgrave, 2002, 288 pages. ISBN 0333992857.

Graham Hutton: Programming in Haskell, Paperback: 200 pages, Cambridge University Press (January 31, 2007), English, ISBN 0521692695.

Richard Bird: Introduction to Functional Programming using Haskell, 2nd edition, Prentice Hall Press, 1998, 460 pp., ISBN 0134843460.

Sylabus -
Poslední úprava: T_KAM (25.04.2008)

1) Typový systém a jeho rozšíření, existenciální typy, generické programování. Typové třídy, funkcionální závislosti.

2) Monády a jejich rozšíření, monad transformers, arrows.

3) Kombinátory a parsování.

4) Continuation passing style.

5) Funkcionální datové struktury.

6) Kompilace a optimalizace funkcionálních jazyků.

7) Nástroje pro profilování, ladění a testování.

8) Rozhraní s jinými programovacími jazyky a s operačním systémem, výjimky a jejich ošetřování.

9) Vícevláknové programování.

 
Univerzita Karlova | Informační systém UK