AFP Course
Home
Education Page
Schedule
Literature
Assignment
Exercises
DSL Topics
Organization
Discussion Forum
Useful Links
Haskell Home
Haskell 98 Report
GHC Home
GHC Libraries
Profiling with GHC
Monad Tutorial
wxHaskell
HC&A Report
Haddock
WASH examples
Growing a Language
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
Afp0405
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 this [[%ATTACHURL%/AFP-papers.zip][zip file]] 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.nomaware.com/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)]] * Programming with arrows (John Hughes, Summer School on AFP 2004). You will receive a copy of this paper. ---+++ 3. Functional Data Structures %X% The two selected papers are: * [[http://www.informatik.uni-bonn.de/~ralf/publications/ICFP01.pdf][A Simple Implementation Technique for Priority Search Queues (Ralf Hinze)]] * [[http://www.informatik.uni-bonn.de/~ralf/publications/WGP00b.ps.gz][Memo functions, polytypically! (Ralf Hinze)]] ---+++ 4. Debugging and Profiling * [[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)]] ---+++ 5. 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) ---+++ 6. Advanced 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)]] ---+++ 7. Embedded Domain Specific Languages * [[http://haskell.cs.yale.edu/yale/papers/icsr98/][Modular Domain Specific Languages and Tools (Hudak)]] * [[http://www.informatik.uni-freiburg.de/~thiemann/haskell/WASH/][WASH/CGI: Server-side Web Scripting with Sessions and Typed, Compositional Forms (Thiemann)]] ---+++ 8. Template Haskell * [[http://www.haskell.org/th/#papers][Template metaprogramming for Haskell (Sheard, Peyton Jones)]] ---+++ 9. Typing Dynamic Typing * [[http://www.cs.uu.nl/people/arthurb/dynamic.html[Typing Dynamic Typing (Baars, Swierstra)]] ---+++ 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)]] ---++ Useful links you may want to have a look at * [[http://www.haskell.org][The Haskell home page]] contains numerous links to groups, projects, people, literature, software etc. * [[http://www.willamette.edu/~fruehr/logos/intro.html][Logos]] contains pictures you might want to use for "brightening up" your presentation ---++ Conferences There are a couple of important conferences in the area of functional programming, amongst which: * [[http://www.math.luc.edu/icfp/][International Conference on Functional Programming (ACM)]], with its [[http://portal.acm.org/dl.cfm][proceedings]] * [[http://www.macs.hw.ac.uk/~ifl03/][IFL]], of which the proceedings are published in the LNCS series. * [[http://portal.acm.org/dl.cfm][POPL: Annual Symposium on Principles of Programming Languages]] * [[http://portal.acm.org/dl.cfm][PPDP: International Conference on Principles and Practice of Declarative Programming]] * [[http://portal.acm.org/dl.cfm][Haskell Workhop]] ---+++ Other Functional Languages * [[http://www.cs.kun.nl/~clean/][Clean]], a very efficient lazy implemented functional language from Dutch origin. * [[http://www-2.cs.cmu.edu/afs/cs.cmu.edu/project/fox/mosaic/sml.html][ML]] is the standard, statically typed, non-lazy functional language ---++ Summer Schools on [[http://www.cs.uu.nl/~johanj/afp/][Advanced Functional programming]] Over the years we have organised a sequence of Summer Schools on advanced Functional programming, of which the proceedings have been published by Springer in their LNCS series: * First International Spring School on Advanced Functional Programming Techniques, Bastad, Sweden, LNCS 925, Springer-Verlag, 1995 (editors: J. Jeuring, E. Meijer). * Functional Parsers by Jeroen Fokker, p. 1-23. * Monads for functional programming by Philip Wadler, p. 24-52. * The Design of a Pretty-printing Library by John Hughes, p. 52-96. * Functional Programming with Overloading and Higher-Order Polymorphism , Mark P. Jones, p. 97-136. * Programming with Fudgets by Thomas Hallgren and Magnus Carlsson, p. 137-182. * Constructing Medium Sized Efficient Functional Programs in Clean by Marko C.J.D. van Eekelen and Rinus J. Plasmeijer, p. 183-227. * Merging Monads and Folds for Functional Programming by Erik Meijer and Johan Jeuring, p. 228-266. * Programming with Algebras by Richard B. Kieburtz and Jeffrey Lewis, p. 267-307. * Graph Algorithms with a Functional Flavour by John Launchbury, p. 308-331. * Advanced Functional Programming , Second International Summer School on Advanced Functional Programming Techniques, Evergreen State College, WA, USA, LNCS 1126, Springer-Verlag, 1996 (editors: J. Launchbury, E. Meijer, T. Sheard). * Composing the User Interface with Haggis by Sigbjorn Finne and Simon Peyton Jones, p. 1-37. * Haskore Music Tutorial by Paul Hudak, p. 38-67. * Polytypic Programming by Johan Jeuring and Patrick Jansson, p. 68-114. * Implementing Threads in Standard ML by Peter Lee, p. 115-130. * Functional Data Structures by Chris Okasaki, p. 131-158. * Heap Profiling for Space Efficiency by Colin Runciman and Niklas Röjemo, p. 159-183. * Deterministic, Error-Correcting Combinator Parsers by S. Doaitse Swierstra and Luc Duponcheel, p. 184-207. * Essentials of Standard ML Modules by Mads Tofte, p. 208-238. * Advanced Functional Programming, Third International School, [[http://www.di.uminho.pt/afp98/][AFP'98]] , in Braga, Portugal from 12th to 19th September 1998, LNCS 1608, Springer-Verlag, 1999 (editors: D. Swierstra, P. Henriques and J. Oliveira). * Sorting Morphisms ,Lex Augusteijn (Philips Research Laboratories, the Netherlands) * Generic Programs - An Introduction - ,Roland Backhouse (Eindhoven University) and Patrik Jansson (Chalmers University of Technology) and Johan Jeuring (Utrecht University) and Lambert Meertens (CWI and Utrecht University) * Designing and Implementing Combinator Languages ,Doaitse Swierstra (Utrecht University) and Pablo Azero (Utrecht University) and Joao Saraiva (Utrecht and Minho University) * Functional Scripting ,Erik Meijer and Daan Leijen (Utrecht University) * CAYENNE - A Language With Dependent Types ,Lennart Augustsson (Chalmers University of Technology) * Generic Program Transformation ,Oege de Moor and Ganesh Sittampalan (Oxford University) * Using MetaML: A Staged Programming Language, Tim Sheard (Oregon Graduate Institute) * Advanced Functional Programming, Fourth International School, [[http://www.cs.uu.nl/~johanj/afp/afp4/][AFP'02]], in Oxford, UK from 19th to 24h August 2002, LNCS 2638, Springer-Verlag, 2003 (editors: Johan T. Jeuring, Simon Peyton Jones).