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)
Functional programming techniques (combinators, monads, continuation
passing style, ...). Functional data structures. Compilation,
optimalization and debugging of programs in functional programming
languages, especially in Haskell.
The knowledge of Haskell at the level of subject NPRG005 is required.
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.
Poslední úprava: T_KAM (25.04.2008)
The goal of the seminar is to familiarize the students with functional programming techniques and thereby improve their programming skills, especially the ability of abstraction and 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.
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í.
Poslední úprava: T_KAM (25.04.2008)
1) Type system and its extensions, existential types, generic programming. Type classes, functional dependencies.
2) Monads and their extensions, monad transformers, arrows.
3) Combinators and parsing.
4) Continuation passing style.
5) Functional data structures.
6) Compilation and optimalization of functional programming languages.
7) Tools for profiling, debugging and testing.
8) Foreign function interface and communication with the operating system, exceptions and their handling.