- Hybrid systems: cyber-physical systems, robotics, and digital twins.
- Formal methods: modelling, verification, theorem proving in Isabelle/HOL, model checking in FDR, principled testing, and notations (especially Z, CSP, & Circus).
- Formal semantics: Unifying Theories of Programming.
- Probabilistic programming: semantics, Bayesian inference, and uncertainty.
- Software engineering: industrial applications.
- History of computer science.
- Homepage: https://www-users.york.ac.uk/~jw524/
Until 2001: Professor of Software Engineering and Director of Centre of Excellence, University of Oxford
Departmental and University Roles