International Summer School on Metaprogramming - Cambridge, UK, 8-12 August

Jeremy Yallop and Ohad Kammar are hosting a summer school on metaprogramming this year, at Robinson College, Cambridge. There are 7 great lecturers scheduled to talk about staged and generic programming, including Philip Wadler from the University of Edinburgh, Simon Peyton Jones from MSR, and Oleg Kiselyov from Tohoku University.

Metaprogramming techniques treat program fragments as values to be manipulated, and the summer school seeks to explore state-of-the-art in this approach and its wider application, covering both theory and practice.

The summer school runs from 8-12 August 2016, and will be held at Robinson College. More details, including registration, costs and timetable here.

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

Metaprogramming Overview

Metaprogramming comes in various forms, including:

  • 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 code. 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.

Related Posts

Author | Gemma Gordon

Gemma is the Operations Director for the OCaml Labs group in the Cambridge Computer Laboratory, and covers day-to-day management, investigates funding opportunities and organises events.