[an error occurred while processing this directive]

Advanced Functional Programming [COMP4132]

Session 1, 2004

Exam

Facts:

Examinable Material

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.

Good Luck!

[an error occurred while processing this directive]