Seminar Typesystemen

Website:website containing additional information
Course code:INFOTS
Credits:7.5 ECTS
Period:periode 1 (week 36 t/m 45, dwz 5-9-2007 t/m 9-11-2007; herkansing week 1)
Timeslot:B
Participants:up till now 7 subscriptions
Schedule:Dit is een oud rooster!
formgrouptimeweekroomteacher
seminar   di 11-1337-44 BBL-475 Andres Löh
 
do 13-1536-44 BBL-475
Contents:

In this seminar, we will study several aspects of (static) type systems for programming languages, such as for example:

  • type inference,
  • (parametric) polymorphism,
  • overloading,
  • subtyping,
  • the Lambda cube,
  • module systems,
  • tracing effects,
  • etc.

We will start with the Hindley-Milner system known from Haskell, and then pick from the above list or other topics according to the preference of the participants.

Literature:

A good overview of the field is provided by the following two books:

During the seminar, we will mostly study actual research papers, both classic and recent. The first two papers we will read are:

  • L. Damas, R. Milner, Principal type-schemes for functional programs, POPL 1982
  • B. Heeren, J. Hage, D. Swierstra, Generalizing Hindley-Milner type inference algorithms, UU Technical Report 2002
More papers will be announced on the course-specific web page during the course period.

Course form:

We will usually study research papers or book chapters covering specific areas and topics in the field of type systems. Students are required to read the assigned papers thoroughly prior to the session. During sessions, students will be required to discuss, summarize, and evaluate the papers spontaneously. Due to the relatively small number of expected participants and the fact that staff members will also participate in the sessions, we prefer lively discussions between all the people present rather over classical presentations.

In addition to the preparation of the papers, students are expected to form small teams and work on a specific type system extension themselves. The idea is to read about the chosen extension, formalize it in the context of a real programming language, if possible to implement the extension, and to document/present the work done. Projects will be assigned in the first week(s) of the course and span the entire course period.

Exam form:

The final grade will be computed as follows:

  • 40% project (including implementation, documentation, final presentation)
  • 40% final exam (covering the topics studied during the seminar)
  • 20% participation in the seminar sessions

Minimum effort to qualify for 2nd chance exam:It is possible to do a 2nd chance exam if the final grade computed as above is at least 4.0, but lower than 5.5.
wijzigen?