© Oxford University
Christopher Strachey (1916–1975) was a pioneering computer scientist and the founder of the Programming Research Group, now part of the Department of Computer Science at Oxford University. Although Strachey was keenly interested in the practical aspects of computing, it is in the theoretical side that he most indelibly left his mark, notably by creating with Dana Scott the denotational (or as he called it, ‘mathematical’) approach to defining the semantics of programming languages. Strachey also spent time writing complex programs and puzzles for various computers, such as a draughts playing program for the Pilot ACE in 1951. He developed some fundamental concepts of machineindependent operating systems, including an early suggestion for timesharing, and was a prime mover in the influential CPL programming language. Strachey came from a notable family of intellectuals and artists, perhaps most famous for Christopher’s uncle Lytton, a writer and member of the Bloomsbury group.
We marked the occasion of 100 years since Christopher Strachey's birth on Saturday 19th November 2016, three days after his birthday, with a symposium of invited speakers. The morning looked back at Strachey’s life and works from a historical and technical perspective, and the afternoon concerned continuing research themes in Computer Science inspired by Strachey, at Oxford and elsewhere. This podcast series has recordings of these talks.
en
Tue, 27 Jun 2017 14:38:57 +0100
https://www.cs.ox.ac.uk/strachey100/
Strachey 100: an Oxford Computing Pioneer
Oxford University
Oxford University
podcasts@it.ox.ac.uk
no
http://mediapub.it.ox.ac.uk/sites/fred/files/default_images/defaultradcliffe.jpg
Strachey 100: an Oxford Computing Pioneer
https://www.cs.ox.ac.uk/strachey100/

1
History of computing
Bloomsbury group
National Research Development Corporation
A historian’s perspective on the earlier years of Christopher Strachey’s life. The talk covers his familial connections, his early career as a school master, and his first computing projects.
http://rss.oucs.ox.ac.uk/tag:20170626:120333:000:file:300371:video
http://media.podcasts.ox.ac.uk/comlab/comsci/strachey/campbellkelly.mp4
A historian’s perspective on the earlier years of Christopher Strachey’s life. The talk covers his familial connections, his early career as a school master, and his first computing projects.
A historian’s perspective on the earlier years of Christopher Strachey’s life. The talk covers his familial connections, his early career as a school master, and his first computing projects.
History of computing,Bloomsbury group,National Research Development Corporation
Martin CampbellKelly
2080
Mon, 26 Jun 2017 11:10:37 +0100

2
History of computing
denotational semantics
programming languages
operating systems
Christopher Strachey’s righthand man at Oxford talks about Strachey’s time as the head of the Programming Research Group (PRG). The talk covers the foundation of the PRG and the research performed at the (PRG), with an emphasis on the equal importance of theoretical and practical work.
http://rss.oucs.ox.ac.uk/tag:20170627:142336:000:file:300395:video
http://media.podcasts.ox.ac.uk/comlab/comsci/strachey/stoy.mp4
Christopher Strachey’s righthand man at Oxford talks about Strachey’s time as the head of the Programming Research Group (PRG).
Christopher Strachey’s righthand man at Oxford talks about Strachey’s time as the head of the Programming Research Group (PRG). The talk covers the foundation of the PRG and the research performed at the (PRG), with an emphasis on the equal importance of theoretical and practical work.
History of computing,denotational semantics,programming languages,operating systems
Joe Stoy
2025
Mon, 26 Jun 2017 11:14:18 +0100

3
programming languages
CPL
History of computing
cambridge university
compilers
Chrisopher Strachey was the most significant contributor to the design and implementation of the programming language CPL. At the time there was little understanding of the complexities of computer language design and how type systems could cope with lists and the kinds of structures needed to represent, for instance, parse trees. The CPL project cannot be regarded as being successful since it did not result in a usable CPL compiler. The reasons being that the language became too large and complicated, there were insufficient people to implement the compiler and, in the middle of the three year project, all work had to be transferred from Edsac 2 to Titan, a newly designed version of the Ferranti Atlas computer which as yet had no operating system. Even so, we can be proud of the work that went into CPL and its influence on the design of many later languages.
http://rss.oucs.ox.ac.uk/tag:20170626:121224:000:file:300377:video
http://media.podcasts.ox.ac.uk/comlab/comsci/strachey/richards.mp4
Chrisopher Strachey was the most significant contributor to the design and implementation of the programming language CPL.
Chrisopher Strachey was the most significant contributor to the design and implementation of the programming language CPL. At the time there was little understanding of the complexities of computer language design and how type systems could cope with lists and the kinds of structures needed to represent, for instance, parse trees. The CPL project cannot be regarded as being successful since it did not result in a usable CPL compiler. The reasons being that the language became too large and complicated, there were insufficient people to implement the compiler and, in the middle of the three year project, all work had to be transferred from Edsac 2 to Titan, a newly designed version of the Ferranti Atlas computer which as yet had no operating system. Even so, we can be proud of the work that went into CPL and its influence on the design of many later languages.
programming languages,CPL,History of computing,cambridge university,compilers
Martin Richards
2090
Mon, 26 Jun 2017 11:17:33 +0100

4
History of computing
denotational semantics
compilers
programming languages
During Peter’s DPhil studies, supervised by Christopher Strachey, he developed a prototype of a system for executing programs based on their denotational semantics. It involved partial evaluation of lambdanotation, implemented using Wadsworth's callbyneed algorithm. He continued the development of the system as a postdoc at Oxford, and subsequently at Aarhus, Denmark. The system was called SIS: Semantics Implementation System.
In this talk, Peter recalls Strachey's influence on his research and on the development of SIS, starting from Strachey’s summer school course on symbolic computation at the PRG in 1969.
http://rss.oucs.ox.ac.uk/tag:20170626:120148:000:file:300369:video
http://media.podcasts.ox.ac.uk/comlab/comsci/strachey/mosses.mp4
During Peter’s DPhil studies, supervised by Christopher Strachey, he developed a prototype of a system for executing programs based on their denotational semantics.
During Peter’s DPhil studies, supervised by Christopher Strachey, he developed a prototype of a system for executing programs based on their denotational semantics. It involved partial evaluation of lambdanotation, implemented using Wadsworth's callbyneed algorithm. He continued the development of the system as a postdoc at Oxford, and subsequently at Aarhus, Denmark. The system was called SIS: Semantics Implementation System.
In this talk, Peter recalls Strachey's influence on his research and on the development of SIS, starting from Strachey’s summer school course on symbolic computation at the PRG in 1969.
History of computing,denotational semantics,compilers,programming languages
Peter Mosses
1770
Mon, 26 Jun 2017 11:19:46 +0100

5
History of computing
implementation techniques
theoretical computing
denotational semantics
Christopher Strachey believed that the gap between theory and practice was impeding the development of computing science. In Robert’s talk, he considers how the work he did with Strachey on the essay that ultimately became their book tried to narrow the gap, by formalising, and reasoning about, the implementation concepts for programming languages. A particular focus will be the proof techniques for imperative programs that use storage, which were implicit, but not very easy to discern, in the book.
http://rss.oucs.ox.ac.uk/tag:20170626:121143:000:file:300376:video
http://media.podcasts.ox.ac.uk/comlab/comsci/strachey/milne.mp4
Christopher Strachey believed that the gap between theory and practice was impeding the development of computing science.
Christopher Strachey believed that the gap between theory and practice was impeding the development of computing science. In Robert’s talk, he considers how the work he did with Strachey on the essay that ultimately became their book tried to narrow the gap, by formalising, and reasoning about, the implementation concepts for programming languages. A particular focus will be the proof techniques for imperative programs that use storage, which were implicit, but not very easy to discern, in the book.
History of computing,implementation techniques,theoretical computing,denotational semantics
Robert Milne
2140
Mon, 26 Jun 2017 11:27:52 +0100

6
History of computing
1950s school life
programming languages
compilers
lambda calculus
National Research Development Corporation
In this panel discussion, three people who knew Christopher Strachey in different contexts talk about their memories of him. Michael Jackson discusses being taught by Strachey as a boy at Harrow, David Hartley talks about work with Strachey on the programming language CPL, and Roger Penrose remembers working with Strachey at the National Research Development Corporation and introducing him to lambda calculus.
http://rss.oucs.ox.ac.uk/tag:20170626:120221:000:file:300370:video
http://media.podcasts.ox.ac.uk/comlab/comsci/strachey/panel.mp4
In this panel discussion, three people who knew Christopher Strachey in different contexts talk about their memories of him.
In this panel discussion, three people who knew Christopher Strachey in different contexts talk about their memories of him. Michael Jackson discusses being taught by Strachey as a boy at Harrow, David Hartley talks about work with Strachey on the programming language CPL, and Roger Penrose remembers working with Strachey at the National Research Development Corporation and introducing him to lambda calculus.
History of computing,1950s school life,programming languages,compilers,lambda calculus,National Research Development Corporation
Roger Penrose, Michael Jackson, David Hartley
2651
Mon, 26 Jun 2017 11:31:20 +0100

7
History of computing
denotational semantics
domain theory
programming languages
The logician Dana Scott played a crucial part in the story of denotational semantics, working for a term with Christopher Strachey in Autumn 1969, when he created a mathematical model for the foundation of the method. In this talk, Dana discusses this period as well as reminiscing about his life and career up to that point.
http://rss.oucs.ox.ac.uk/tag:20170626:120412:000:file:300372:video
http://media.podcasts.ox.ac.uk/comlab/comsci/strachey/dana.mp4
The logician Dana Scott played a crucial part in the story of denotational semantics, working for a term with Christopher Strachey in Autumn 1969, when he created a mathematical model for the foundation of the method.
The logician Dana Scott played a crucial part in the story of denotational semantics, working for a term with Christopher Strachey in Autumn 1969, when he created a mathematical model for the foundation of the method. In this talk, Dana discusses this period as well as reminiscing about his life and career up to that point.
History of computing,denotational semantics,domain theory,programming languages
Dana Scott
1439
Mon, 26 Jun 2017 11:32:54 +0100

8
Process algebras
Markov chains
performance analysis
dynamic systems
In this talk, Jane presents about her work on modelling dynamic behaviour of systems using quantative modelling techniques. Particular kinds of modelling diagrams are used and a mathematical approach to looking at their meaning is presented.
http://rss.oucs.ox.ac.uk/tag:20170626:120831:000:file:300374:video
http://media.podcasts.ox.ac.uk/comlab/comsci/strachey/hillston.mp4
In this talk, Jane presents about her work on modelling dynamic behaviour of systems using quantative modelling techniques. Particular kinds of modelling diagrams are used and a mathematical approach to looking at their meaning is presented.
In this talk, Jane presents about her work on modelling dynamic behaviour of systems using quantative modelling techniques. Particular kinds of modelling diagrams are used and a mathematical approach to looking at their meaning is presented.
Process algebras,Markov chains,performance analysis,dynamic systems
Jane Hillston
1990
Mon, 26 Jun 2017 11:36:30 +0100

9
History of computing
functional programming
types
Philip reviews Christopher Strachey’s influence on modernday functional programming languages.
http://rss.oucs.ox.ac.uk/tag:20170627:143857:000:file:300397:video
http://media.podcasts.ox.ac.uk/comlab/comsci/strachey/wadler.mp4
Philip reviews Christopher Strachey’s influence on modernday functional programming languages.
Philip reviews Christopher Strachey’s influence on modernday functional programming languages.
History of computing,functional programming,types
Philip Wadler
1863
Mon, 26 Jun 2017 11:41:20 +0100

10
Probabilistic programming
generative algorithms
procedural modelling
Hongseok begins by talking about a program of Strachey’s that wrote “love letters” using the Manchester University computer. He then uses this as a lead in for discussing probabilistic methods of generating algorithms and programs.
http://rss.oucs.ox.ac.uk/tag:20170626:120922:000:file:300375:video
http://media.podcasts.ox.ac.uk/comlab/comsci/strachey/hongseok.mp4
Hongseok begins by talking about a program of Strachey’s that wrote “love letters” using the Manchester University computer. He then uses this as a lead in for discussing probabilistic methods of generating algorithms and programs.
Hongseok begins by talking about a program of Strachey’s that wrote “love letters” using the Manchester University computer. He then uses this as a lead in for discussing probabilistic methods of generating algorithms and programs.
Probabilistic programming,generative algorithms,procedural modelling
Hongseok Yang
2054
Mon, 26 Jun 2017 11:43:52 +0100

11
Semantics of programming languages
type theory
storage models
polymorphism
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.
http://rss.oucs.ox.ac.uk/tag:20170627:142555:000:file:300396:video
http://media.podcasts.ox.ac.uk/comlab/comsci/strachey/uday.mp4
In this presentation, Uday brings together two strands of Christopher Strachey’s thought: parametric polymorphism and abstract 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.
Semantics of programming languages,type theory,storage models,polymorphism
Uday Reddy
2429
Mon, 26 Jun 2017 11:54:02 +0100

12
type theory
programming languages
Types in programming languages are commonly thought of as a way of preventing certain bad things from happening, such as multiplying a number by a string. But this is only half of the benefit of types: it is what types are against. Types in programming languages are also what enable some good things to happen, such as selecting the right implementation of a heterogeneous operation like comparison or printing based on type information; this is what are types for. This ability is surprisingly powerful, and gives rise to a variety of highly expressive generic programming techniques. Jeremy illustrates with some examples based on the rankpolymorphic array operations introduced in Iverson’s APL: not only does the type information prevent array shape errors, it is what directs the lifting of operations across array dimensions.
http://rss.oucs.ox.ac.uk/tag:20170626:120527:000:file:300373:video
http://media.podcasts.ox.ac.uk/comlab/comsci/strachey/gibbons.mp4
Types in programming languages are commonly thought of as a way of preventing certain bad things from happening, such as multiplying a number by a string.
Types in programming languages are commonly thought of as a way of preventing certain bad things from happening, such as multiplying a number by a string. But this is only half of the benefit of types: it is what types are against. Types in programming languages are also what enable some good things to happen, such as selecting the right implementation of a heterogeneous operation like comparison or printing based on type information; this is what are types for. This ability is surprisingly powerful, and gives rise to a variety of highly expressive generic programming techniques. Jeremy illustrates with some examples based on the rankpolymorphic array operations introduced in Iverson’s APL: not only does the type information prevent array shape errors, it is what directs the lifting of operations across array dimensions.
type theory,programming languages
Jeremy Gibbons
1900
Mon, 26 Jun 2017 11:55:50 +0100