AFP Course
Home
Education Page
Schedule
Literature
Assignment
Exercises
DSL Topics
Organization
Discussion Forum
Useful Links
Haskell Home
Haskell 98 Report
Haskell Wiki
GHC Home
GHC Libraries
Profiling with GHC
Monad Tutorial
wxHaskell
HC&A Report
Haddock
Growing a Language
FFI in Haskell
wxHaskell docs
hoogle
Center for ST
Home
Master Program
Center
Home
Courses
People
Projects
Page
Edit Page
Rename Page
Attach File
Printable
Wiki Source
More ...
Web
Recent Changes
Notify Service
News
Page Index
Search
More ...
Wiki
About TWiki
Text Formatting
Registration
Change Password
Reset Password
Users
Groups
Log In
or
Register
Course Literature
Afp0607
The literature for AFP consists of a number of selected papers that are all available through Internet. These papers cover the topics that are discussed in the lectures. Students are expected to study these papers individually, and preferably before the associated lecture. (If you run into problems while reading a paper, you might want to notify me, so that I can pay some attention to it during the lectures.) In addition, students are expected to have a thorough look the [[http://www.haskell.org/onlinereport/][Haskell Language Report]], which is the official definition of the Haskell 98 language, including a number of standard libraries that are supported. %T% You can also download [[%ATTACHURL%/AFP06-papers.zip][this file (AFP06-papers.zip)]] with the selected papers (approximately 3 Mb). ---++ Selected Papers ---+++ 1. Introduction * [[http://www.md.chalmers.se/~rjmh/Papers/whyfp.html][Why Functional Programming Matters (Hughes)]] ---+++ 2. Monads and arrows * [[http://www.haskell.org/all_about_monads/html/index.html][Tutorial: All About Monads (Newburn)]] * [[http://research.microsoft.com/Users/simonpj/papers/marktoberdorf/][Tackling the Awkward Squad: monadic input/output, concurrency, exceptions, and foreign-language calls in Haskell (Peyton Jones)]] * [[http://www.math.chalmers.se/~rjmh/afp-arrows.pdf][Programming with arrows (John Hughes, Summer School on AFP 2004)]] Another good paper about monads is (but optional): * [[http://homepages.inf.ed.ac.uk/wadler/papers/marktoberdorf/baastad.pdf][Monads for functional programming (Philip Wadler)]] ---+++ 3. wxHaskell and FFI * [[http://www.cs.uu.nl/~daan/pubs.html][wxHaskell: A Portable and Concise GUI Library for Haskell (Leijen)]] * [[http://www.cs.uu.nl/~daan/pubs.html][The λ Abroad – A Functional Approach to Software Components (Leijen, PhD thesis)]]<br> (only Chapter 2: H/Direct: a binary language interface for Haskell) ---+++ 4. Functional data structures * [[http://www.informatik.uni-bonn.de/~ralf/publications/FingerTrees.pdf][Finger trees: a simple general-purpose data structure (Hinze, Paterson)]] ---+++ 5. Domain specific languages * [[http://haskell.cs.yale.edu/yale/papers/icsr98/][Modular Domain Specific Languages and Tools (Hudak)]] ---+++ 6. Template Haskell * [[http://www.haskell.org/th/#papers][Template metaprogramming for Haskell (Sheard, Peyton Jones)]] ---+++ 7. Debugging and Tracing * [[http://www.cs.chalmers.se/~rjmh/QuickCheck/][QuickCheck: A Lightweight Tool for Random Testing of Haskell Programs (Claessen, Hughes)]] * [[http://www.cs.kent.ac.uk/pubs/2003/1896/][Testing and Tracing Lazy Functional Programs using QuickCheck and Hat (Claessen, Runciman, Chitil, Hughes, Wallace)]] ---+++ 8. Advanced Type Classes * [[http://www.cse.ogi.edu/~mpj/pubs/fpca93.html][A system of constructor classes: overloading and implicit higher-order polymorphism (Mark P. Jones)]] * [[http://www.cse.ogi.edu/~mpj/pubs/fundeps.html][Type Classes with Functional Dependencies (Mark P. Jones)]] ---+++ 9. Generalized Algebraic Data Types * [[http://research.microsoft.com/Users/simonpj/papers/gadt/gadt-pldi.pdf][Simple unification-based type inference for GADTs (Peyton-Jones, Vytiniotis, Weirich, Washburn)]] Optional additional material: * Haskell GADTs (easy introduction) http://www.cs.nott.ac.uk/~pni/Papers/Notes/GADTs.html * ML-ish (read examples, skip type system) http://www.cs.bu.edu/~hwxi/academic/papers/popl03.ps * Omega (examples): http://web.cecs.pdx.edu/~sheard/papers/LangOfTheFuture.ps * Epigram: http://e-pig.org/downloads/epigram-notes.pdf ---+++ 10. Advanced parsing techniques * [[http://www.cs.uu.nl/docs/vakken/afp/Literature/LL1.pdf][Deterministic, Error-Correcting Combinator Parsers (Swierstra, Duponcheel)]] * [[http://www.cs.uu.nl/docs/vakken/afp/Literature/p224-swierstra.pdf][Polish Parsers, Step By Step (Hughes, Swierstra)]]