PFL080 Haskell nejen pro informatiky
Vyučující | Otakar Smrž, Ph.D. |
---|---|
Rozsah | 2/1 Z+Zk |
Platnost | od ZS 2007 |
Souřadnice | Čt 10:40–13:05 SU1 |
Osnova
11.10.2007 Introduction -- Types and Polymorphism -- Laziness
18.10.2007 "Why FP Matters" -- Higher-Order Functions -- Tree Structures
25.10.2007 "Haskell and XML" -- Type Classes -- Pretty-Printing
01.11.2007 "A Prettier Printer" -- Monads -- Parsing
08.11.2007 "Monadic Parsing in Haskell" -- Monad Laws -- Input/Output
15.11.2007 "Cabal" -- "Haddock" -- Functional Dependencies
22.11.2007 "Fun with FD" -- Curry-Howard Correspondence -- Existential Types
29.11.2007 LECTURE CANCELLED
06.12.2007 “Proofs are Programs” – Combinatory Categorial Grammar
13.12.2007 “Using Types to Parse Natural Language” – Finite Maps – Arrays
20.12.2007 “Functional Morphology” – Functional Queues – Red-Black Trees
03.01.2008 Haskell versus OCaml – Projects – Darcs
10.10.2008 QuickCheck – MapReduce et al. – Concluding Notes
Anotace
Haskell je čistě funkcionální programovací jazyk. Jeho studium vybízí k hledání souvislostí mezi různými oblastmi informatiky, logiky i lingvistiky. Haskell je ale též moderní prostředek pro přesný, přitom stručný a srozumitelný popis řešení obecných problémů.
V přednášce se budeme věnovat výrazným rysům jazyka a zaměříme se na jeho aplikace v podobě tzv. doménově specifických jazyků. Ve cvičeních budou studenti diskutovat své referáty z odborné literatury.
Předmět je určen pro studenty magisterského nebo doktorandského studia zmiňovaných oborů. Absolvování PRG005 není ani podmínkou, ani překážkou účasti. S některými probíranými tématy se lze setkat i v PRG040, příp. AIL006 a AIL078. V našem případě bude míra teoretického detailu věcí dohody a složení referátů bude záviset na zájmu studentů.
Literatura
- Hal Daumé III. 2002–2006. Yet Another Haskell Tutorial.
- Paul Hudak. 2000. The Haskell School of Expression: Learning Functional Programming through Multimedia. Cambridge University Press.
- Paul Hudak, John Peterson, Joseph Fasel. 2000. A Gentle Introduction to Haskell.
- John Hughes. 1984. Why Functional Programming Matters.
- Richard A. Frost. 2006. Realization of Natural Language Interfaces Using Lazy Functional Programming. ACM Computing Surveys, Volume 38, Issue 4.
- Peter Ljunglof. 2002. Pure Functional Parsing. An Advanced Tutorial. Licenciate thesis, Goteborg University & Chalmers University of Technology.
- Philip Wadler. 2003. A Prettier Printer. In Jeremy Gibbons and Oege de Moor, editors, The Fun of Programming, Cornerstones of Computing, pages 223–243. Palgrave Macmillan, March 2003.
Sylabus
- Základní funkce a datové typy
- Výpočetní model a lambda kalkulus
- Rekurze, abstrakce, funkce vyššího řádu
- Polymorfní typy versus třídy typů
- Monády a jejich využití
- Parsing a pretty-printing
- Doménově specifické jazyky
- Související teoretické otázky
- Užitečné nástroje pro programátory
Odkazy
Advanced Programming by Benjamin C. Pierce – volná inspirace pro tento předmět
Advanced Functional Programming at Saarbrücken