Programming Languages
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 EAP, with the aim of fostering cross-discipline collaborations. FATA hosts experts in the foundations of programming languages, with a particular focus on session types for concurrent and distributed systems (see here for an overview). GLASS hosts experts in compilation, parallel and distributed computing. EAP brings together experts on software engineering and Computing Science education research.
The PL Theme is supported by a lively seminar series, PLUG, held every two weeks during term time (details below).
Acting Theme Lead: Dr Simon Fowler
Members
Academic Staff
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 Senior Lecturer (Associate 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’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.
Research Staff
Dr Duncan Paul Attard is a research associate on the EPSRC-funded STARDUST project. His main research interests lie in the area of runtime monitoring and verification for concurrent and distributed systems, automated synthesis of efficient runtime monitors, and software engineering techniques to address scalability and partial-failure in distributed systems. He is also interested in the semantics of programming languages, language design, concurrent languages, compiler construction, formal modelling and verification of systems, and program logics.
Dr Dejice Jacob's research interests are in compilers and run-times, parallelism, resource management, virtual machines and accelerators.
Mr Duncan Lowther is a research assistant on the "Secure MicroPython for Morello" project.
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.
Dr Ryo Yangida's research interests are in computer networks, protocols, host mobility, host multihoming, IPv6, next generation network, and testbed-driven research.
Research Students
School of Computing Science PGR Student list
Ms Arwa H. Alsubhi
Mr Matthew Alan Le Brun
Mr Nicholas Morris
Mr Jacob Roberts
Mr Robert Szafarczyk
Ms Olivia Hartley Weston
Projects
Uni-pi Uni-pi: safety, adaptability and resilience in distributed ecosystems, by construction (EPSRC NIA 2023-2026) - Dr Ornela Dardha
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-2023) – 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)
Tools
Members of the PL Theme often develop practical tools as part of their research. Here are a selection:
- BigraphER
- A tool for specifying and executing models based on Milner's Bigraphical Reactive Systems.
- Mungo
- A tool for checking the sequencing of method calls in Java applications using typestates, to ensure safe usage of resources.
- StMungo
- A tool for generating typestates and skeleton implementations from multiparty session types written in the Scribble tool.
- Papaya
- A tool for Scala which allows typestate checking while permitting unrestricted aliasing.
- Rise
- A functional pattern-based data-parallel language for program transformation based on rewrite rules.
- Links
- 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.
- YewPar
- 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.
- ...
Mailing List
We announce our seminars on the compsci-plug
mailing list.
Subscribe
If you are on the University of Glasgow network you can access and subscribe the the list. Otherwise you can send an email to sympa@lists.cent.gla.ac.uk
with the following in the Subject line:
SUB compsci-plug NAME
where NAME
is your first name and surname.
Unsubscribe
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:
sympa@lists.cent.gla.ac.uk
with nothing in the Subject line. In the message body put the following:
UNSUBSCRIBE compsci-plug EMAIL
where EMAIL
is an optional email address, useful if different from your "From:" address. If you normally have an automatic signature at the end of your email, please put the word QUIT
just before your signature.
SPLI - Scottish Programming Languages Institute
Members of the PL theme are also members of the Scottish Programming Languages Institute (SPLI) which co-ordinates community events to enhance programming languages research in Scotland.
SPLI oversees the smooth run of the annual Scottish Programming Languages and Verification Summer School (SPLV) and Scottish Programming Languages Seminar (SPLS).
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 theme are regular participants, and regulary 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.
Two members of the theme (Singer and Vanderbauwhede) have authored the world's most widely used Haskell MOOC Functional Programming in Haskell, and Haskell is still taught in the School through the MOOC in COMPSCI4021: Functional Programming.
Teaching
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.