This is an old page. Unless it is updated, it isn't relevant for the current (2007) seminar.
The course will be based on the following components:
We will jointly read "A Static Semantics for Haskell", Karl Filip Faxén
, Journal of Functional Programming Vol 12, Issue 5.
(link through library of Universiteit Utrecht, presumably works only from within university network).
This paper gives a complete dscription of Haskell's type system, in the traditional style. This paper is not easy reading, but it is prototypical of the kind of work involved when giving such descriptions. Students will learn here how to decipher such formal descriptions.
Furthermore we will study: Simon Peyton Jones and Mark Shields. Practical type inference for arbitrary-rank types
Participants will present chapters of the new book edited by Benjamin C. Pierce, Advanced Topics in Types and Programming Languages
. This book, which can be seen as a successor of the book Types and Programming Languages
discusses a wide range of topics related to the use of types in programming languages.
A programming assignment
In order toget hands on experience we have defined a number of assigments, realted to software we are currently developing:
- Extension of the Helium compiler to handle classes
- Extension of the EHC compiler to handle modules
- Extension of the EHC to include Generalised Abstract Data Types.
At the end of the course short presentatations will be scheduled in which the results of the assigments are to be presented.
We expect the course to put quite a heavy load on many on you. In order to keep track of the time spent, we require you to maintain a bookkeeping of the time spent (in half hour units) on your home page on the Wiki.Please mail us te link to your page.
Selected material for mid-test
The material to be studied for the mid-test are the topics covered in:
- Faxen's a static sementics
- Peyton-Jones' arbitrary-rank types
- Selected parts of the (online) Haskell 98 Report
You are allowed to bring the two papers and a (paper) copy of the report to the test.
In particular, you are advised to study the topics and figures that have been discussed during the meetings,
and the following parts selected from the Haskell 98 Revised Report:
- Type Classes and Overloading (4.3)
- Static Semantics of Bindings (4.5)
- dependency analysis
- monomorphism restriction
- Kind Inference (4.6)
- Modules (5.2 - 5.5)
- import/export lists
- qualified names
- 27 Sep 2005