[pept] International summer school on metaprogramming (Cambridge, 8-12 Aug 2016)

Jeremy Yallop yallop at gmail.com
Thu Jun 2 23:28:39 CEST 2016

International summer school on metaprogramming

Robinson College, Cambridge, United Kingdom

8th-12th August, 2016


Metaprogramming is an approach to improving programs by treating
program fragments (such as expressions or types) as values that the
program can manipulate. Metaprogramming comes in various forms,

* staged programming: treating expressions as program values.

  The execution of a staged program is spread over several phases,
  with each stage using the available data to generate specialized

  Staged programming has a wide variety of applications — numeric
  computations, parsing, database queries, generic programming, domain
  specific languages, and many more. Precompiling the staged code can
  have dramatic performance improvements, in some cases an order of
  magnitude or more.

* generic programming: treating types as program values.

  Generic programming can improve code flexibility, allowing to give a
  single definition of a function that operates in a predictable (but
  not uniform) way on many different types.

  Generic programming techniques can be used to define a wide variety
  of functions, including traversals, comparisons, pretty printers,
  serialization functions, and many more.

The goal of the summer school is to explore the state-of-the art in
metaprogramming and its applications, covering both theory and

Lecturers and courses

Philip Wadler, Sam Lindley and Shayan Najd (University of Edinburgh)
  Normalisation and embedding

Simon Peyton Jones (Microsoft Research)

Oleg Kiselyov (Tohoku University)
  Type-safe embedding and optimizing domain-specific languages in the
  typed final style

Laurence Tratt (Kings College London)
  The highs and lows of macros in a modern language

Jeremy Yallop (University of Cambridge)
  Staging generic programming

Martin Berger (University of Sussex)
  Foundations of meta-programming

José Pedro Magalhães (Standard Chartered)


The school is aimed at graduate students in programming languages and
related areas, but is open to researchers, practitioners and strong
masters students with the support of a supervisor. Some experience of
typed functional programming in Haskell, OCaml, Scala, or a similar
language will be assumed.


Thanks to generous industrial sponsorship, we are able to offer places
with significantly reduced fees. There are three categories of fees,
all of which cover registration, accommodation in Robinson College
from Monday to Friday, and all meals and refreshments.

Participants who can pay the full fees will help allocate more
fully-subsidised slots to less financially-able students. Your
category of fees will not have any direct bearing on your acceptance
into the school, but could affect how many slots we can offer.

* The full fee is £800.

* The standard (partly-subsidised) fee is £295.

* We also have a limited number of fully-subsidised places available
  for a nominal registration fee of £50.

We will notify you of your fee upon acceptance.

Application procedure

You will need to complete the online registration form at:


and ensure your referees send your references to:

  metaprog-2016 at cl.cam.ac.uk

by the application deadline.


* 30 June: Application and reference letters deadline.

* 10 July: Notification of acceptance.

* 24 July: Registration deadline.

* 8 August: Summer school.

Further information

For questions relating to the material of the school, please contact
  Jeremy Yallop (jeremy.yallop at cl.cam.ac.uk)
  Ohad Kammar (ohad.kammar at cs.ox.ac.uk)

For administrative questions, please contact
  Gemma Gordon (gg417 at cl.cam.ac.uk)

More information about the pept mailing list