Session 1, 2004
- 2 hour open book exam
Date & time: 21 June (Monday),
- Venue: K17-B01
- Imperative Programming in a Functional Language
- The material from Simpon Peyton Jones' paper "Tackling the Awkward
Squad" and the background material presented in the corresponding
lectures. In particular, you need to understand the operational
semantics presented in that paper.
- Compilation of Functional Languages
- (Typed) core languages; encriched lambda calculus; encoding of data
structures into the lambda calculus; basic ideas of (compiled) graph
reduction; basic ideas of the STGM; basic ideas of GHC's Core language.
- Type Systems
- Strong typing; Haskell's type system; type inference.
- Generic Programming with Morphisms
- Functors; fixpoints; pre-types; catamorphisms; anamorphisms;
generic transformations; generic queries.
- SSA & ANF
- Static single-assignment form; administrative normal form;
conversion between them; use as intermediate languages.
- Arrays in Haskell
- Why do standard Haskell arrays have a high runtime overhead? Boxed
versus unboxed arrays; structure flattening and associated types.
Make sure you can solve the exercises.