PředmětyPředměty(verze: 953)
Předmět, akademický rok 2023/2024
   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 [HT]
Počet míst: neomezen
Minimální obsazenost: neomezen
4EU+: ne
Virtuální mobilita / počet míst pro virtuální mobilitu: ne
Stav předmětu: zrušen
Jazyk výuky: čeština
Způsob výuky: prezenční
Způsob výuky: prezenční
Garant: prof. Mgr. Zdeněk Dvořák, Ph.D.
Třída: Informatika Mgr. - volitelný
Kategorizace předmětu: Informatika > Programování
Výsledky anket   Termíny zkoušek   Rozvrh   Nástěnka   
Anotace -
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
Poslední úprava: T_KAM (25.04.2008)
Cíl předmětu -

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.

Poslední úprava: T_KAM (25.04.2008)
Literatura -

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.

Poslední úprava: T_KAM (25.04.2008)
Sylabus -

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í.

Poslední úprava: T_KAM (25.04.2008)
 
Univerzita Karlova | Informační systém UK