Cambridge Programming Research Group

### CPRG Research Students' Lecture Series, May 2010

Given as part of the Research Students' Lectures 2009-10 course.

**Introduction**

#### Lecture 1: Modularity: What, why, and how, *Stephen Kell*

#### Lecture 2: Meta Programming and You, *Robin Message*

#### Leture 3: Mathematically Structuring Programming Langages, *Dominic Orchard*

This lecture was repeated in November 2010 for the Research Students' Lectures 2010-2011

- Lecture notes (updated 14/05/10)
- Lecture slides (updated 25/11/10)
- Examples (all examples can be run with GHC Haskell, e.g.
`ghci example1.lhs`):- Example 1: Simple arithmetic language, E
- Example 2: E with div exceptions
- Example 3: E with exceptions, no abstraction
- Example 4: E with abstracted exceptions
- Example 5: E with exception monad
- Example 6: E with exception monad (in terms of join and functor map)
- Example 7: E with exception monad as Haskell
`Monad`instance for do notation