Why don’t you introduce yourself?
I’m Gordon Plotkin, a professor from the University of Edinburgh. I’ve been with the university since my PhD days in the late 60s and early 1970s. I’m also in the habit of doing summer work in industry and I’ve had visiting positions at Digital, Microsoft, and, most recently, Google.
Tell us about your career highlights
I’m perhaps best known for my work on the operational semantics of computer languages. This answers the question: ‘what does a computer program actually do?’ Previously, people either wrote bits of English, which weren’t terribly mathematical, or formulated very complicated abstract machines.
You couldn’t use either to prove a program was correct, for example. There have been various approaches to this problem, but structural operational semantics, in one form or another, seems to be the most widely adopted.
Was there a moment when you fell in love with computers?
No, not really. I don’t especially think that I am in love with computers. When I went to university, I wanted to do cybernetics, maybe because of what I had read of Norbert Wiener. They advised me to do maths and physics. Later, I found that Edinburgh was doing artificial intelligence and I realised that was what I really wanted to do.
At Edinburgh, in the late 60s, I got involved in the scene there. My PhD was in AI. But there were lots of other things going on there, such as theorem proving, natural languages, and robotics. What got me hooked was the relationship between logic and computer science. I was interested in languages – whether formal or natural – and in semantics. What’s the connection between an utterance and the real world or the artificial world? And there are lots of problems like that for programming languages.
Around then Dana Scott invented a denotational semantics of programming languages combining Tarski’s approach to semantics with his own wonderful mathematics of domain theory, and I got hooked. I’ve done a lot since then, but, essentially, my career has been about semantical issues in computer languages and the application of computer languages.
Tell us about your Lovelace Lecture
The talk directly connects my work at Google on differentiable programming languages and my interest in AI from all those years ago. It’s about the connection between programming languages and learning. When people write AI systems they have to use some kind of programming language to do it. And these, from my point of view, are interesting languages. So, I’m going to talk about two of them.
What I thought would be fun, would be to start off with Lady Lovelace and her connection with Babbage. She was actually the first person to talk about using computers for symbolic purposes. For example, she talked about using computers for music. She also thought that computers can never be intelligent, they can only do what they are told to do.
When Alan Turing started AI, with his seminal article `Computing Machinery and Intelligence’, he argued that computers could, for example, learn. And he went through various objections, one of which he called Lady Lovelace’s Objection – the one I already mentioned. That’ll set the scene. And then I’ll talk about two different kinds of machine learning: one is statistical and one is deep learning.
The first one involves probabilistic programming languages and the other involves differentiable programming languages. And, if time allows, I’ll speculate about whether there is a general approach to languages for learning.
How do you feel your work is changing the world?
I think there are three answers to this question. There’s the theoretical world, there’s the technological world, and there’s the actual world. I’ve always been fascinated by connections between logic, maths and programming - the fundamental structures of computation. I’m hoping my work will improve the intellectual world. In the technological world - maybe I’m prejudiced - but I like programming languages and I hope my contributions will help to provide good tools for doing machine learning.
I guess I’m hoping to contribute to the usability of programming languages for machine learning. As for the real world - it can be used for good or evil. It depends on the people with power and the moral frameworks they operate in.