The School of Computing Science has a long history and tradition of outstanding programming language research. Across its research sections the School hosts a unique combination of world-leading researchers in programming languages research, broadly construed, ranging from foundational research into type systems, to the implementation of parallel runtime systems, to research into how people learn programming languages, naming but a few. Researchers in the Theme typically span theory and practice, with a strong emphasis on the development of practical tools.
The Programming Languages Theme allows researchers from all research Sections, at present including FATA, GLASS, and CCSE, with the aim of fostering cross-discipline collaborations. FATA hosts world-class researchers in the foundations of programming languages, with a particular focus on session types for concurrent and distributed systems (see here for an overview). GLASS has world-renowned experts in compilation, parallel and distributed computing. CCSE brings together a world-leading, interdisciplinary group of experts on Computing Science education research.
The PL Theme is supported by a lively seminar series, PLUG, held every two weeks during term time.
*NEW*: Members of the PL theme are organising Euro-Par'22, a major international conference on parallel and distributed computing, to be hosted at the University of Glasgow.
Theme Lead: Dr Ornela Dardha
Dr Blair Archibald's research focuses on modelling, reasoning about, and verifying complex systems, including the languages used to specify their behaviour.
Dr Gul Calikli's research field is empirical software engineering with a focus on human aspects. She conducts interdisciplinary research at the intersection of software engineering and cognitive psychology that is sometimes accompanied by Machine Learning (ML) techniques and social psychology theories. Part of her research focuses on program comprehension by designing user evaluations & program comprehension experiments.
José Cano Reyes is a Lecturer (Assistant Professor) in the School of Computing Science at the University of Glasgow and a visiting member of ICSA in the School of Informatics at The University of Edinburgh. His research interests are in the broad areas of Computer Architecture, Computer Systems, Compilers, Interconnection Networks, Machine Learning and Security. His current research is focused on hardware/software co-designed approaches to efficiently deploy Deep Learning applications on mobile/embedded edge devices (e.g. IoT boards, phones, drones, mobile robots).
Quintin’s origins are in programming language design and implementation in the context of persistent programming languages. Subsequently, he has been involved in programming education research, exploring many areas, including learners’ attitudes, program comprehension, assessment issues, conceptual development and PL transfer among near-novice programmers.
Dr Ornela Dardha is the founding director of the Concurrency Lab (CoLab) whose research focuses on using session types/typestates in formal models and programming languages for communication-safe distributed systems. She is an expert on the full spectrum of session types and typestates and PL research, from foundations to language design and software tool development, including formal modelling and tools for programming languages, such as Java and Scala.
Dr Simon Fowler’s research focuses on the design and implementation of programming languages, primarily in the context of functional programming and its applications to concurrency and data management. He is particularly interested in multi-tier programming and behavioural type systems.
Professor Simon Gay works on programming language foundations, especially session types for concurrent and distributed programming. He is currently leading the EPSRC project Stardust (Session Types for Reliable Distributed Systems) in collaboration with the University of Kent and Imperial College London.
Dr Lito Michala's research interests are predominantly application-driven large-scale information system architecture designs for the collection and processing of large amounts of data and the problems these introduce to scalability and reliability. Distributed computing and edge processing are able to address much of these issues.
Waqar’s research focus is on investigating tools and compilers for accessible heterogeneous computing, which involves working closely with a variety of languages and parallel programming frameworks. He is also interested in computing education research, where he’s been investigating work-based and competency-based learning, and also looking at ways to improve quality of CS education in developing countries.
Colin Perkins is a senior lecturer in the School of Computing Science, and the current chair of the Internet Research Task Force (https://irtf.org/). His research interests are on network transport protocols, with a particular focus on transport protocols for real-time and interactive multimedia for the Internet, and on improving the way we design, implement, specify, and standardise network protocols. He has a particular interest in the application of types and programming languages to improve network protocol standards, and on bringing together the network protocol standardisation and specification communities to produce systems that are useful to standards developers.
Dr Jeremy Singer's research interests are in compilers, cloud, managed run-times, parallelism, and resource management.
Dr Tim Storer
Dr Tim Storer’s research interests are in the practice of software engineering. With respect to programming languages, a key area of interest for his research group is the practice of behaviour driven development and the expression and maintenance of specifications and automated test suites in the Gherkin specification language. His research group have investigated the practice of behaviour driven development in industry and in open source projects, as well as designing, implementing and evaluating novel tools that support software engineers engaged in this practice.
Professor Trinder's research interest is in designing, implementing, and evaluating high-level distributed and parallel programming models. Functional languages are a particular focus, so parallel Haskells, Erlang and friends.
Professor Wim Vanderbauwhede's research interest is in programming languages, compilation, heterogeneous & FPGA computing.
Mr Vikraman Choudhury's research interest are in type theories and programming languages, through the lens of category theory. He is also interested in mathematical logic, constructive mathematics, and formalization.
Dr Jan de Muijnck-Hughes is interested in how we can apply state-of-the-art advances in programming language theory to fundamentally change the way we design and engineer systems to make them more trustworthy, secure, and safe. Specifically, he is interested how applications of dependent-types and resource-aware type-systems can better the hardware design process, and how behavioural typing and hardware capabilities can make interprocess communication more secure.
Dr Dejice Jacob's research interests are in compilers and run-times, parallelism, resource management, virtual machines and accelerators.
Dr Stephen McQuistin is a research associate, working on projects that look to improve the Internet protocol standardisation process and its outputs. This includes looking at the use of formal languages and specification techniques in the standards development process to enable verification and automatic code generation.
Dr Cristian Urlea's reserach interests are in parallel and distributed computing, programming langauges and compilers and program optimisation and security.
Dr Laura Voinea's interests are in formal models and programming languages for concurrent and distributed programming. She is currently working on session types for mission critical Systems-On-Chip and their software components as part of the AppControl project.
Mr Thomas Koehler explores the design of rewrite-based optimising compilers that can adapt to new algorithms and hardware: domain-extensible compilers that provide an extensible set of program abstractions and optimisations.
Ms Ethel Tshukudu
Ms Ethel Tshukudu’s research is on conceptual transfer in programming languages. She specifically researches how relative novice programmers transfer conceptual and semantic knowledge from one programming language to the other. She is also currently working as a Research Assistant at Raspberry Pi Foundation. Her work involves conducting and managing individual and collaborative research projects in Computer Science Education.
Mr Matthew Alan Le Brun’s research interests are in distributed systems and fault tolerance. He is a new PhD student exploring the links between formal logic, session types and fault-tolerance, and is researching methods of statically inferring fault-tolerance guarantees.
AppControl: Enforcing Application Behaviour through Type-Based Constraints (EPSRC, 2020-2024) - Professor Wim Vanderbauwhede
CapableVMs (EPSRC, 2020-2024) - Dr Jeremy Singer
Session Types for Reliable Distributed Systems (Stardust) (EPSRC, 2020-2024) - Professor Simon Gay (PI) and Professor Phil Trinder (CoI)
Behavioural Application Program Interfaces (2018-2022) – Dr Ornela Dardha (UoG Site Leader), Professor Simon Gay
Border Patrol - Dr Wim Vanderbauwhede (EPSRC, 2017-2022)
From Data Types to Session Types: A Basis for Concurrency and Distribution (ABCD) - Professor Simon Gay (PI) and Dr Ornela Dardha (Co-I) (EPSRC, 2013-2020)
Manycore Research Innovation and Opportunities Network (MaRIONet) - Dr Jeremy Singer and Professor Phil Trinder (EPSRC, 2016-2019)
Exploiting Parallelism through Type Transformations for Hybrid Manycore Systems - Dr Wim Vanderbauwhede and Professor Simon Gay (EPSRC, 2013-2018)
AnyScale Applications - Dr Jeremy Singer (EPSRC, 2013-2018)
Members of the PL Theme often develop practical tools as part of their research. Here are a selection:
- A tool for specifying and executing models based on Milner's Bigraphical Reactive Systems.
- A tool for checking the sequencing of method calls in Java applications using typestates, to ensure safe usage of resources.
- A tool for generating typestates and skeleton implementations from multiparty session types written in the Scribble tool.
- A tool for Scala which allows typestate checking while permitting unrestricted aliasing.
- A functional pattern-based data-parallel language for program transformation based on rewrite rules.
- A multi-tier web programming language developed in collaboration with the University of Edinburgh, with support for session-typed concurrency, language-integrated query, effect handlers, and more.
- SD Erlang
- An extension of the Erlang programming language to enhance scalability while preserving Erlang's idiomatic structures for reliability.
- High performance parallel algorithmic skeletons designed specifically for exact combinatorial search.
PLUG - Programming Languages at University of Glasgow Seminars
Shameless PLUG is our local seminar series and takes place every two weeks. Our sessions are designed to be incredibly informal and welcoming. The kinds of session that we host include, but are not limited, to:
- Here is this classic PL paper; let's read and discuss it.
- Here is this hot PL paper; let's read and discuss it.
- Here is this paper I don't quite get; let's read and discuss it.
- I've found this cool / classic library / tool / technique; let me show it to you.
- I want to talk about my research.
- I want to talk about my paper.
- I want to practise my talk.
- Let's watch this conference presentation.
- Let's discuss how we teach PL.
- Let's have a discussion about topic X relating to PL.
We announce our seminars on the
compsci-plug mailing list.
If you are on the University of Glasgow network you can access and subscribe the the list. Otherwise you can send an email to
email@example.com with the following in the Subject line:
SUB compsci-plug NAME
NAME is your first name and surname.
If you wish to no longer receive updates about PLUG events, and do not have access to the mailing list system then please send an email to:
with nothing in the Subject line. In the message body put the following:
UNSUBSCRIBE compsci-plug EMAIL
QUIT just before your signature.
SPLS - Scottish Programming Languages Seminars
The Scottish Programming Languages Seminar (SPLS) meets three times per year for an afternoon of research talks on all aspects of programming language theory, design and implementation. Members of the School of Computing Science are regular participants, and take our turn to host and organise SPLS. The SPLS website gives information about forthcoming seminars, and archives information about past seminars. To join the SPLS email list, follow the link from the website.
Glasgow, Haskell and the History of Functional Programming
Functional programming is a style of programming in which programs can be regarded as mathematical functions, with properties that make it easy to reason about programs' behaviour and correctness. Functional programming languages are characterized by elegant high-level constructs and clean theoretical foundations.
Beginning in 1987, the international research community in functional programming defined Haskell, a standardized functional programming language for research and teaching. Members of the Functional Programming Group in the Department of Computing Science played a leading role in the language design process. Development of the Glasgow Haskell Compiler began in 1990; it is still the leading implementation of the language, has tens of thousands of users, and hosts dozens of experimental language extensions. It is still under active development as an open source project.
The Journal of Functional Programming was launched in 1991, and continues to be the main journal in the area. John Hughes and Philip Wadler were among the founding editors; Simon Peyton Jones became an editor later; John Launchbury and John O'Donnell were members of the editorial board. During this period, the University of Glasgow was an internationally leading centre of functional programming research.
As a research topic, functional programming has been highly influential in the broader area of programming language theory, and Haskell in particular has been a hugely successful vehicle for the exploration of novel programming constructs, techniques and concepts. The involvement of the Glasgow group from 1987 to 1998 was a significant factor in this success.
We teach a range of more specilised courses related to PL, in addition to Level 1/2 CS courses. Below is a list.
- Distributed and Parallel Technologies H (COMPSCI4082)
- Functional Programming H (COMSCI4021)
- Programming Languages H (COMPSCI4016)
- Systems Programming H (COMPSCI4081)
- Theory of Computation H (COMPSCI4072)
Members of the Theme also supervise PL-related UG4 and MSc projects.
PhD Research Opportunities
The School of Computing Science at the University of Glasgow offers studentships to support PhD research, nomally twice per year, in January and July.
There are several types of scholarships being offered, details can be found here.
More information about how to apply can be found here. This web page includes information about the research proposal, which is required as part of your application.
If you are interested in persuing a PhD in a PL-related topic, then please check what each of the PL academic staff member is working on, to get an idea of the topics we cover.
Applicants are strongly encouraged to contact a potential supervisor and discuss an application before the submission deadline.