今年三月,EPSRC 補助的泛型與索引編程計畫將在牛津大學開設五天的課程: Spring School on Generic and Indexed Programming,講者包括:
- Nate Foster (Princeton University): Bidirectional Programming
- Ralf Hinze (University of Oxford): Generic Programming with Adjunctions
- Oleg Kiselyov (Fleet Numerical Meteorology and Oceanography Center): Typed Tagless Interpreters
- Simon Peyton Jones (Microsoft Research Cambridge): Type Functions
- Jeremy Siek (University of Colorado at Boulder): Concepts in C++
- Stephanie Weirich (University of Pennsylvania): Generic Programming with Dependent Types
詳情請參閱公式網頁。
「泛型編程 (generic programming)」這詞大家可能較常看到。如同網頁上說的,泛型編程的目標是讓同一段程式能用在更多種不同的情況。諸如資料的形狀、代數結構、演算策略等都可以成為程式的參數。函數編程圈內談得較多的是資料型別的泛型 — 讓同一個函數可以用在串列、二元樹、多元樹等不同資料結構上。這和物件導向圈內的「泛型」稍有不同,但兩邊的人一直試著溝通、了解彼此的語言。
用依值型別 (dependent type) 來作泛型編程是最近的一個新嘗試。所謂索引編程 (indexed programming) 是一種較輕量的依值型別應用,我不知怎麼翻譯比較合適。
這次講師陣容蠻堅強的,牛津也是個好地方。有可能的話很推薦大家去。