About

I'm a Lecturer in Programming Language Foundations at the University of Glasgow School of Computing Science, where I am a proud member and acting lead of the Programming Languages Theme. I am also Glasgow's representative to, and publicity chair of, the Scottish Programming Languages Institute.

Previously, I was a researcher on the STARDUST project (on which I am now a co-investigator), researching behavioural types for actor systems 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.

Contact

Feel free to get in touch: you can reach me at simon.fowler -at- glasgow.ac.uk or simon -at- simonjf.com.

I am generally happy to act as an external reviewer for papers matching my research interests, provided that I can see other reviews and participate in the discussion after submitting my review.

Interested in doing a PhD?

Teaching

In Semester 1 2024/25, I will be co-teaching Algorithmic Foundations 2 (with Gethin Norman), and Functional Programming (with Jeremy Singer). In Semester 2, I will be co-teaching Programming Languages (with Michele Sevegnani).

I'm happy to meet to discuss course content and coursework; if my office door (510C in the Sir Alwyn Williams Building) is open, just knock. If you'd like to set up a meeting, please send me an e-mail.

Recent News

  • (15th July 2024): Raymond Hu and I have a new draft about multiparty session types for actor languages.
  • (11th March 2024): I will be on the ESOP 2025 PC this year. Also, we had a position paper "Behavioural Types for Heterogeneous Systems" accepted at PLACES 2024.
  • (31st July 2023): I enjoyed giving an introduction to session types at SPLV 2023. My slides are now available.
  • (31st July 2023): Final version of Special Delivery: Programming with Mailbox Types, to be presented at ICFP 2023, is now available. Additionally, our artifact was evaluated as reusable.
  • (21st July 2023): Happy to be serving on the PADL 2024 PC. Please consider submitting!

Projects

Research Interests

I am interested in the design and implementation of functional programming languages, and how they can help developers to implement safer and more robust concurrent and distributed code. I am particularly interested in behavioural types and multi-tier programming.

  • Behavioural types check behavioural properties of a program during the development process. Session types are a class of behavioural type system which detect communication protocol violations: if a session-typed program successfully compiles, then it respects its specified communication protocols. I have worked on allowing session types to co-exist with exceptions, and integrating linear type systems with GUI programming.

    I am currently interested in pushing behavioural types towards the mainstream, which requires thinking about classes of behavioural types which are amenable to distribution; the session typing interoperability problem; and how we can make behavioural typing much more lightweight.

  • Multi-tier programming allows developers to write distributed applications in a single, uniform language. This has the advantages of type-safety when communicating between different components, and avoiding the impedance mismatch problem when needing to develop in multiple languages. I am a core contributor to the Links multi-tier programming language.

    My current interests in this space centre around language-integrated query technologies for temporal databases, which will allow access to time-varying databases without needing to write error-prone code, or rely on expensive proprietary solutions.

Events