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

Import to contacts

ORCID iDhttps://orcid.org/0000-0001-5143-5475

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

Broadly speaking, my research interests are in the design and implementation of programming languages. I am particularly interested in functional programming languages, and their applications to concurrency, web applications, and data management.

Behavioural Types

Behavioural types check behavioural properties of a program during the development process, for example rejecting programs which neglect to close a file handle. 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.

My ultimate research goal is for behavioural types to become part of every programmer's toolkit, allowing developers to write concurrent and distributed applications with confidence. In support of this goal, 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

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.

Multi-tier programming is particularly suited to web and database applications. I am a core contributor to the Links programming language, and have implemented its support for distributed session typing and temporal databases.

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.

Publications

List by: Type | Date

Jump to: 2024 | 2023 | 2022 | 2021 | 2020 | 2019 | 2017 | 2016 | 2015 | 2013
Number of items: 17.

2024

Fowler, S. , Haller, P., Kuhn, R., Lindley, S., Scalas, A. and Vasconcelos, V. T. (2024) Behavioural Types for Heterogeneous Systems (Position Paper). In: 15th Workshop on Programming Language Approaches to Concurrency and Communication-cEntric Software (PLACES 2024), Luxembourg City, Luxembourg, 06 April 2024, pp. 37-48. (doi: 10.4204/EPTCS.401.4)

2023

Fowler, S. , Attard, D. P., Sowul, F., Gay, S. and Trinder, P. (2023) Special delivery: programming with mailbox types. Proceedings of the ACM on Programming Languages, 7(ICFP), 191. (doi: 10.1145/3607832)

Fowler, S. , Kokke, W., Dardha, O. , Lindley, S. and Morris, J. G. (2023) Separating sessions smoothly. Logical Methods in Computer Science, 19(3), 3. (doi: 10.46298/lmcs-19(3:3)2023)

Fowler, S. , Attard, D. P., Sowul, F., Gay, S. and Trinder, P. (2023) Artifact for "Special Delivery: Programming with Mailbox Types". [Artefact]

2022

Fowler, S. , Galpin, V. and Cheney, J. (2022) Language-Integrated Query for Temporal Data. In: ACM SIGPLAN International Conference on Generative Programming: Concepts & Experiences (GPCE), Auckland, New Zealand, 06-07 Dec 2022, pp. 5-19. ISBN 9781450399203 (doi: 10.1145/3564719.3568690)

2021

Fowler, S. , Kokke, W., Dardha, O. , Lindley, S. and Morris, J. G. (2021) Separating Sessions Smoothly. In: 32nd International Conference on Concurrency Theory (CONCUR 2021), 23-27 Aug 2021, 36:1-36:18. ISBN 9783959772037 (doi: 10.4230/LIPIcs.CONCUR.2021.36)

Harvey, P. , Fowler, S. , Dardha, O. and Gay, S. J. (2021) Multiparty Session Types for Safe Runtime Adaptation in an Actor Language. In: 35th European Conference on Object Oriented Programming (ECOOP 2021), 12-17 Jul 2021, (doi: 10.4230/LIPIcs.ECOOP.2021.10)

Harvey, P. , Fowler, S. , Dardha, O. and Gay, S. J. (2021) Multiparty Session Types for Safe Runtime Adaptation in an Actor Language. [Artefact]

Fowler, S. , Harding, S. D., Sharman, J. and Cheney, J. (2021) Cross-tier web programming for curated databases: a case study. International Journal of Digital Curation, 16(1), (doi: 10.2218/ijdc.v16i1.735)

2020

Fowler, S. (2020) Model-View-Update-Communicate: Session Types meet the Elm Architecture. In: 34th European Conference on Object-Oriented Programming (ECOOP 2020), 15-17 Nov 2020, p. 14. ISBN 9783959771542 (doi: 10.4230/LIPIcs.ECOOP.2020.14)

Fowler, S. , Horn, R. and Cheney, J. (2020) Artifact for "Language-Integrated Updatable Views". [Artefact]

2019

Horn, R., Fowler, S. and Cheney, J. (2019) Language-Integrated Updatable Views. In: 31st Symposium on Implementation and Application of Functional Languages (IFL 2019), Singapore, 25-27 Sep 2019, p. 13. ISBN 9781450375627 (doi: 10.1145/3412932.3412945)

Fowler, S. , Lindley, S., Morris, J. G. and Decova, S. (2019) Exceptional asynchronous session types: session types without tiers. Proceedings of the ACM on Programming Languages, 3(POPL), 28. (doi: 10.1145/3290341)

2017

Fowler, S. , Lindley, S. and Wadler, P. (2017) Mixing Metaphors: Actors as Channels and Channels as Actors. In: 31st European Conference on Object-Oriented Programming (ECOOP 2017), Barcelona, Spain, 18-23 Jun 2017, p. 11. ISBN 9783959770354 (doi: 10.4230/LIPIcs.ECOOP.2017.11)

2016

Fowler, S. (2016) An Erlang implementation of multiparty session actors. Electronic Proceedings in Theoretical Computer Science, 223, pp. 36-50. (doi: 10.4204/eptcs.223.3)

2015

Fowler, S. , Denuzière, L. and Granicz, A. (2015) Reactive single-page applications with dynamic dataflow. In: Pontelli, E. and Son, T. C. (eds.) Practical Aspects of Declarative Languages: 17th International Symposium, PADL 2015, Portland, OR, USA, June 18-19, 2015. Proceedings. Series: Lecture notes in computer science (9131). Springer: Cham, pp. 58-73. ISBN 9783319196855 (doi: 10.1007/978-3-319-19686-2_5)

2013

Fowler, S. and Brady, E. (2013) Dependent Types for Safe and Secure Web Programming. In: Proceedings of the 25th symposium on Implementation and Application of Functional Languages (IFL '13), Nijmegen, The Netherlands, 28-30 Aug 2013, pp. 49-60. ISBN 9781450329880 (doi: 10.1145/2620678.2620683)

This list was generated on Tue Apr 23 14:04:31 2024 BST.
Number of items: 17.

Articles

Fowler, S. , Attard, D. P., Sowul, F., Gay, S. and Trinder, P. (2023) Special delivery: programming with mailbox types. Proceedings of the ACM on Programming Languages, 7(ICFP), 191. (doi: 10.1145/3607832)

Fowler, S. , Kokke, W., Dardha, O. , Lindley, S. and Morris, J. G. (2023) Separating sessions smoothly. Logical Methods in Computer Science, 19(3), 3. (doi: 10.46298/lmcs-19(3:3)2023)

Fowler, S. , Harding, S. D., Sharman, J. and Cheney, J. (2021) Cross-tier web programming for curated databases: a case study. International Journal of Digital Curation, 16(1), (doi: 10.2218/ijdc.v16i1.735)

Fowler, S. , Lindley, S., Morris, J. G. and Decova, S. (2019) Exceptional asynchronous session types: session types without tiers. Proceedings of the ACM on Programming Languages, 3(POPL), 28. (doi: 10.1145/3290341)

Fowler, S. (2016) An Erlang implementation of multiparty session actors. Electronic Proceedings in Theoretical Computer Science, 223, pp. 36-50. (doi: 10.4204/eptcs.223.3)

Book Sections

Fowler, S. , Denuzière, L. and Granicz, A. (2015) Reactive single-page applications with dynamic dataflow. In: Pontelli, E. and Son, T. C. (eds.) Practical Aspects of Declarative Languages: 17th International Symposium, PADL 2015, Portland, OR, USA, June 18-19, 2015. Proceedings. Series: Lecture notes in computer science (9131). Springer: Cham, pp. 58-73. ISBN 9783319196855 (doi: 10.1007/978-3-319-19686-2_5)

Conference Proceedings

Fowler, S. , Haller, P., Kuhn, R., Lindley, S., Scalas, A. and Vasconcelos, V. T. (2024) Behavioural Types for Heterogeneous Systems (Position Paper). In: 15th Workshop on Programming Language Approaches to Concurrency and Communication-cEntric Software (PLACES 2024), Luxembourg City, Luxembourg, 06 April 2024, pp. 37-48. (doi: 10.4204/EPTCS.401.4)

Fowler, S. , Galpin, V. and Cheney, J. (2022) Language-Integrated Query for Temporal Data. In: ACM SIGPLAN International Conference on Generative Programming: Concepts & Experiences (GPCE), Auckland, New Zealand, 06-07 Dec 2022, pp. 5-19. ISBN 9781450399203 (doi: 10.1145/3564719.3568690)

Fowler, S. , Kokke, W., Dardha, O. , Lindley, S. and Morris, J. G. (2021) Separating Sessions Smoothly. In: 32nd International Conference on Concurrency Theory (CONCUR 2021), 23-27 Aug 2021, 36:1-36:18. ISBN 9783959772037 (doi: 10.4230/LIPIcs.CONCUR.2021.36)

Harvey, P. , Fowler, S. , Dardha, O. and Gay, S. J. (2021) Multiparty Session Types for Safe Runtime Adaptation in an Actor Language. In: 35th European Conference on Object Oriented Programming (ECOOP 2021), 12-17 Jul 2021, (doi: 10.4230/LIPIcs.ECOOP.2021.10)

Fowler, S. (2020) Model-View-Update-Communicate: Session Types meet the Elm Architecture. In: 34th European Conference on Object-Oriented Programming (ECOOP 2020), 15-17 Nov 2020, p. 14. ISBN 9783959771542 (doi: 10.4230/LIPIcs.ECOOP.2020.14)

Horn, R., Fowler, S. and Cheney, J. (2019) Language-Integrated Updatable Views. In: 31st Symposium on Implementation and Application of Functional Languages (IFL 2019), Singapore, 25-27 Sep 2019, p. 13. ISBN 9781450375627 (doi: 10.1145/3412932.3412945)

Fowler, S. , Lindley, S. and Wadler, P. (2017) Mixing Metaphors: Actors as Channels and Channels as Actors. In: 31st European Conference on Object-Oriented Programming (ECOOP 2017), Barcelona, Spain, 18-23 Jun 2017, p. 11. ISBN 9783959770354 (doi: 10.4230/LIPIcs.ECOOP.2017.11)

Fowler, S. and Brady, E. (2013) Dependent Types for Safe and Secure Web Programming. In: Proceedings of the 25th symposium on Implementation and Application of Functional Languages (IFL '13), Nijmegen, The Netherlands, 28-30 Aug 2013, pp. 49-60. ISBN 9781450329880 (doi: 10.1145/2620678.2620683)

Artefact

Fowler, S. , Attard, D. P., Sowul, F., Gay, S. and Trinder, P. (2023) Artifact for "Special Delivery: Programming with Mailbox Types". [Artefact]

Harvey, P. , Fowler, S. , Dardha, O. and Gay, S. J. (2021) Multiparty Session Types for Safe Runtime Adaptation in an Actor Language. [Artefact]

Fowler, S. , Horn, R. and Cheney, J. (2020) Artifact for "Language-Integrated Updatable Views". [Artefact]

This list was generated on Tue Apr 23 14:04:31 2024 BST.

Supervision

I am interested in supervising PhD, UG4, and MSc projects matching my research interests; please feel free to get in touch and we can work out an exact topic.

If you are interested in doing a PhD, please consult my website.

I am currently first supervisor for Olivia Hartley Weston (working on co-contextual approaches to behavioural typing) and I am currently second PhD supervisor for Matthew Alan Le Brun (working on multiparty session types for distributed algorithms; co-supervised with Ornela Dardha).

  • Rudi Horn (PhD): Language-Integrated Relational Lenses (second supervisor; co-supervised with James Cheney). 
  • Many prior BSc and MSc projects on PL-related topics

Teaching

In 2023/24, I am teaching Algorithmic Foundations 2 (with Gethin Norman) and Functional Programming (with Jeremy Singer).