Generic and Indexed Programming

<i>Generic programming</i> is about making programs more widely applicable via exotic kinds of parametrization—not just along the dimensions of values or of types, but also of things such as the shape of data, algebraic structures, strategies, computational paradigms, and so on. <i>...

Volledige beschrijving

Bibliografische gegevens
Andere auteurs: Gibbons, J
Formaat: Conference item
Gepubliceerd in: Springer 2012
_version_ 1826280806059868160
author2 Gibbons, J
author_facet Gibbons, J
collection OXFORD
description <i>Generic programming</i> is about making programs more widely applicable via exotic kinds of parametrization—not just along the dimensions of values or of types, but also of things such as the shape of data, algebraic structures, strategies, computational paradigms, and so on. <i>Indexed programming</i> is a lightweight form of dependently typed programming, constraining flexibility by allowing one to state and check relationships between parameters: that the shapes of two arguments agree, that an encoded value matches some type, that values transmitted along a channel conform to the stated protocol, and so on. <p> The two forces of genericity and indexing balance each other nicely, simultaneously promoting and controlling generality. The <i>Generic and Indexed Programming</i> project at Oxford was funded by the UK Engineering and Physical Sciences Research Council over the period 2006–2010 to explore the interaction between these two forces. The closing activity of the project took the form of a <i>Spring School on Generic and Indexed Programming</i>, held at Wadham College, Oxford, during March 22–24, 2010; this volume collects the revised lecture notes from the school. <p> The school was—and these lecture notes are—aimed at doctoral students, researchers, and practitioners in programming languages and related areas. A good grounding is assumed in typed functional programming, as in Haskell or OCaml. Six lecturers from the programming languages community, each an acknowledged expert in their specialism, covered various aspects of generic and indexed programming; each gave about four hours’ lectures, distributed throughout the week of the school. Lecture notes from five of those six sets of lectures are included here: <ul> <li> Nate Foster on three approaches to <i>bidirectional programming</i>, for specifying consistent mappings to and from a data representation <li> Ralf Hinze on using <i>adjunctions</i> to unify and generalize a number of familiar generic recursion schemes <li> Oleg Kiselyov on the <i>typed tagless interpreter</i> approach for encoding a typed object language in a typed meta-language <li> Jeremy Siek on the debates that took place over the attempt to incorporate <i>concepts in the revised C++ standard</i> <li> Stephanie Weirich on <i>datatype- and arity-generic programming within a dependently typed language</i> </li></li></li></li></li></ul> The sixth lecturer, Simon Peyton Jones, spoke on <i>type functions</i> in Haskell, and their use in generic programming; his lecture notes are represented by his chapter “Fun with Type Functions” with Oleg Kiselyov and Chung-chieh Shan in the book <i>Reflections on the Work of C. A. R. Hoare</i>, edited by Cliff Jones, Bill Roscoe, and Ken Wood (Springer, 2010, ISBN 978-1-84882-911-4) in honour of Sir Tony Hoare’s 75th birthday. Slides for all six sets of lectures are available on the school’s website <a href='\"http://www.cs.ox.ac.uk/projects/gip/school.html\"'>http://www.cs.ox.ac.uk/projects/gip/school.html</a>. <p> I would like to express my sincere thanks to the six lecturers at the school, for the considerable effort they devoted to making the event a success; to their co-authors, for helping to write up the lecture notes; to the staff of Wadham College, especially Jan Trinder, for their hospitality in the college’s 400th year; to EPSRC, for their financial support; and last but not least, to the 41 participants, for making it all worthwhile.</p></p></p>
first_indexed 2024-03-07T00:19:15Z
format Conference item
id oxford-uuid:7bf30184-81c2-45a4-9b5a-2de1e932cdbc
institution University of Oxford
last_indexed 2024-03-07T00:19:15Z
publishDate 2012
publisher Springer
record_format dspace
spelling oxford-uuid:7bf30184-81c2-45a4-9b5a-2de1e932cdbc2022-03-26T20:53:53ZGeneric and Indexed ProgrammingConference itemhttp://purl.org/coar/resource_type/c_5794uuid:7bf30184-81c2-45a4-9b5a-2de1e932cdbcDepartment of Computer ScienceSpringer2012Gibbons, J<i>Generic programming</i> is about making programs more widely applicable via exotic kinds of parametrization—not just along the dimensions of values or of types, but also of things such as the shape of data, algebraic structures, strategies, computational paradigms, and so on. <i>Indexed programming</i> is a lightweight form of dependently typed programming, constraining flexibility by allowing one to state and check relationships between parameters: that the shapes of two arguments agree, that an encoded value matches some type, that values transmitted along a channel conform to the stated protocol, and so on. <p> The two forces of genericity and indexing balance each other nicely, simultaneously promoting and controlling generality. The <i>Generic and Indexed Programming</i> project at Oxford was funded by the UK Engineering and Physical Sciences Research Council over the period 2006–2010 to explore the interaction between these two forces. The closing activity of the project took the form of a <i>Spring School on Generic and Indexed Programming</i>, held at Wadham College, Oxford, during March 22–24, 2010; this volume collects the revised lecture notes from the school. <p> The school was—and these lecture notes are—aimed at doctoral students, researchers, and practitioners in programming languages and related areas. A good grounding is assumed in typed functional programming, as in Haskell or OCaml. Six lecturers from the programming languages community, each an acknowledged expert in their specialism, covered various aspects of generic and indexed programming; each gave about four hours’ lectures, distributed throughout the week of the school. Lecture notes from five of those six sets of lectures are included here: <ul> <li> Nate Foster on three approaches to <i>bidirectional programming</i>, for specifying consistent mappings to and from a data representation <li> Ralf Hinze on using <i>adjunctions</i> to unify and generalize a number of familiar generic recursion schemes <li> Oleg Kiselyov on the <i>typed tagless interpreter</i> approach for encoding a typed object language in a typed meta-language <li> Jeremy Siek on the debates that took place over the attempt to incorporate <i>concepts in the revised C++ standard</i> <li> Stephanie Weirich on <i>datatype- and arity-generic programming within a dependently typed language</i> </li></li></li></li></li></ul> The sixth lecturer, Simon Peyton Jones, spoke on <i>type functions</i> in Haskell, and their use in generic programming; his lecture notes are represented by his chapter “Fun with Type Functions” with Oleg Kiselyov and Chung-chieh Shan in the book <i>Reflections on the Work of C. A. R. Hoare</i>, edited by Cliff Jones, Bill Roscoe, and Ken Wood (Springer, 2010, ISBN 978-1-84882-911-4) in honour of Sir Tony Hoare’s 75th birthday. Slides for all six sets of lectures are available on the school’s website <a href='\"http://www.cs.ox.ac.uk/projects/gip/school.html\"'>http://www.cs.ox.ac.uk/projects/gip/school.html</a>. <p> I would like to express my sincere thanks to the six lecturers at the school, for the considerable effort they devoted to making the event a success; to their co-authors, for helping to write up the lecture notes; to the staff of Wadham College, especially Jan Trinder, for their hospitality in the college’s 400th year; to EPSRC, for their financial support; and last but not least, to the 41 participants, for making it all worthwhile.</p></p></p>
spellingShingle Generic and Indexed Programming
title Generic and Indexed Programming
title_full Generic and Indexed Programming
title_fullStr Generic and Indexed Programming
title_full_unstemmed Generic and Indexed Programming
title_short Generic and Indexed Programming
title_sort generic and indexed programming