Dr Simon Fowler
- Lecturer in Programming Language Foundations (School of Computing Science)
email:
Simon.Fowler@glasgow.ac.uk
pronouns:
He/him/his
Office 510c, Sir Alwyn Williams Building, Glasgow, G12 8RZ
Biography
I'm a Lecturer in Programming Language Foundations at the University of Glasgow School of Computing Science.
My research interests centre around typed functional programming languages, specifically in functional approaches to concurrency, web programming, and data management.
Previously, I worked on the STARDUST project, investigating behavioural types for actor systems, working with Simon Gay and Phil Trinder. Before that, I spent 6 years at the University of Edinburgh School of Informatics, first as a PhD student in the Centre for Doctoral Training in Pervasive Parallelism working with Sam Lindley and Philip Wadler, and second as a Research Software Engineer working with James Cheney. I've also worked at OCaml Labs and IntelliFactory.
Research interests
I am interested, broadly speaking, in the design and implementation of functional programming languages.
My research focuses on programming abstractions and type systems. I like putting theory into practice (most of my research is accompanied by open-source software artifacts), and practice into theory (giving us the power to precisely understand, reason about, and build upon existing programming abstractions).
Programming abstractions make it easier to write correct, more concise, and often more efficient code. As an example, my work on language-integrated query shows benefits for curated scientific databases, and my work on temporal language-integrated query brings the power of temporal databases to non-temporal RDMBSs. I am also interested in reactive programming and abstractions for programming user interfaces.
Type systems provide lightweight, language-integrated guarantees about program correctness. I am particularly interested in behavioural type systems that give strong correctness properties about runtime behaviour, such as conformance to communication protocols and deadlock-freedom.
Both of these areas are important in the era of agentic AI: coding agents allow us to write code faster, but we must still be confident in what generated code does, and whether it is correct. Just because we can write code faster does not mean we should stop striving to write better code. Programming abstractions and domain-specific languages allow us to write shorter and more concise programs that are easier to reason about, and type systems can give rapid feedback on incorrect code that is useful in both human- and AI-driven development.
My current main research focus is on mailbox types, a behavioural type system for message passing languages like Erlang and Elixir. I am the core developer of Pat, the first programming language with support for mailbox types.
Research groups
- Formal Analysis, Theory & Algorithms
Supervision
I am interested in supervising UG4 and MSci projects matching my research interests. Please check the project proposal system at the start of the year, or get in touch over summer if you want to propose a concrete idea.
If you are interested in doing a PhD, please consult my website.
I am currently primary supervisor for Olivia Weston and Petros Kitazos. I'm also co-supervising Toby Ueno at the University of Edinburgh.
I had the pleasure of co-supervising the PhD studies of Matthew Alan Le Brun (graduated 2026, co-supervised with Ornela Dardha) and Rudi Horn (graduated 2023, co-supervised with James Cheney).
- Weston, Olivia
Co-contextual typing for behavioural type systems
Teaching
I am currently teaching COMPSCI4021 (Functional Programming) with Jeremy Singer, and COMPSCI4016 (Programming Languages).
