Depedently Typed Programming
In the Spring of 2010, I will teach a
a graduate CS 520 (CRN 64271) and senior CS 410 (CRN 64270) seminar
about dependently types programing.
I this course we will use the Omega language which supports a simple
form of dependently typed programming which is very similar to Haskell.
Here are some of the topics we might cover.
- The Curry-Howard isomorphism.
- Tagless typed interpreters.
- Data-generic programming (i.e. Maps at all types, generic show, generic marshalling).
- Size generic programming (i.e. List based maps for 1,2,3, ... lists).
- Typed meta-programming (i.e. programs that write programs).
- Logical relations as witness types.
- Programming at the type level.
- Types and hardware descriptions.
- Programming language meta-theory (Subject reduction).
Here are links to some of the materials we will use.
- Omega users manual
- Programming in Omega
- Generic Programming in Omega.
Back to Tim Sheard's web-page.