Episode Synopsis "Parametric Polymorphism and models of storage "
In this presentation, Uday brings together two strands of Christopher Strachey’s thought: parametric polymorphism and abstract models of storage. The term parametric polymorphism was introduced in by Strachey who distinguished it from “ad hoc” polymorphism. In the words of John Reynolds, “a parametric polymorphic function is one that behaves the same way for all types,” whereas an ad hoc polymorphic function may have unrelated meanings at different types. A very similar intuition arose in mathematics, some twenty years earlier, for which Eilenberg and MacLane proposed a “General Theory of Natural Equivalences”, what we now call category theory. Relating the two notions allows us to develop a broad view of “parametricity” (the idea of acting the same way for all types), which is applicable not only to programming languages but also to mathematics and perhaps other disciplines. A particularly important application of this broad view is for Strachey’s “mathematical semantics” of programming languages. For modelling imperative programming languages that operate by manipulating a store, Strachey presented a basic model of storage based on “locations”, while promising a further paper on an “abstract model of storage” to appear in future. Unfortunately the latter never appeared. In succeeding work, Reynolds proposed an abstract model of store as well as an “intuitionistic” functor category approach to model the stack discipline of the store. O'Hearn and Tennent made the crucial observation that the model needs to be embellished with parametricity to capture the data abstraction aspects of the store. In this talk, Uday reviews these developments as well as his own recent work on integrating the Reynolds model with parametricity to capture the fact that state changes of the store are irreversible. One way to understand these developments is to view them as a “parametric mathematical semantics” of programming languages.
Listen "Parametric Polymorphism and models of storage "
More episodes of the podcast Strachey 100: an Oxford Computing Pioneer
- Strachey: the Bloomsbury Years
- Strachey and the Oxford Programming Research Group
- Strachey and the development of CPL
- SIS, a semantics implementation system
- Semantic relationships: reducing the separation between practice and theory
- Strachey: school master, language designer, colleague
- Greetings to the participants at “Strachey 100”
- A modelling language approach to defining mathematical structures via semantics
- Christopher Strachey, First-Class Citizen
- Probabilistic Programming
- Parametric Polymorphism and models of storage
- What are types for?