Required Reading

In this course we will use the following book on program analysis, in particular the chapters 2, 4 and 5:

Principles of Program Analysis
Nielson, Flemming, Nielson, Hanne R., Hankin, Chris
Corr. 2nd printing, ISBN: 3-540-65410-0

For the material on actual compilers I use a few chapters from the following book:

Modern Compiler Design
Dick Grune, Kees van Reeuwijk, Henri E. Bal, Ceriel J.H. Jacobs, and Koen Langendoen
Second Edition

The chapters we currently consider in the lectures are Chapter 10 on 
Explicit and Implicit Memory Management and Chapter 12 on Functional Programs and bits and pieces from Chapter 11 (11.3.7 on Lambda Lifting). If you can't skip the reading of Section 12.1, however, you should not be doing this course.

The book has some additional interesting material that we do not consider in this course due to lack of time.

This book can be freely downloaded when you are on Eduroam.

Details on what material you have to study for the exam can be found here


Basic Installation

We use Haskell for all labs. The easiest way to get all the tools you need is by installing the Haskell Platform. The lab computers should already be configured with the Haskell Platform.

AG system

In the course we use the UU Attribute Grammar system a lot:

Installing Packages from Hackage

You can install packages from the open package repository Hackage.

You do this using software called cabal-install, whose command-line tool is called cabal and is included with the Haskell Platform. See the guide on how to install a Cabal package for more on this procedure.

On the lab computers the cabal command is available from the special cabal command prompt which can be found under Start -> Standard Applications -> Informatica -> Haskell 2011.2.0.1 -> cabal

Some additional material (optional)

A former lecturer of this course, Atze Dijkstra, recorded two additional lectures, one on generating code for functional languages, and one on garbage collection. These are still available for interested students under a Solis login:

Functional language implementation

Garbage Collection