PhD Opportunities
SPLI coordinates events and networking opportunities for PhD students from all of our member institutions. Many academics at our member institutions are open to new PhD students in various areas related to Programming Languages research. Below we list possible supervisors from our member institutions as well as a brief description of their research interests.
If you are interested, please get in contact with a supervisor directly.
University of Edinburgh

Ajitha Rajan
Software engineering, Software testing, Static analysis, Robustness and interpretability of AI models

Amir Shaikhha
Domain-specific languages, Databases, Compilers

Bjoern Franke
Compilers, JIT compilers, Parallelisation, Dynamic binary translation, Processor simulation, Software transformation driven by dynamic information

Chris Heunen
Foundations of quantum programming languages, Categorical semantics

David Aspinall
Software security and privacy, Theorem proving, Specification and verification

Elizabeth Polgreen
Program-synthesis methods and applications, Software verification

Ian Stark
Mathematical models for programming languages and concurrent systems

Jacques Fleuriot
Formal verification, Interactive theorem proving

James Cheney
Databases, Logic/Verification, Applications to provenance, Scientific-data management, Security

Markulf Kohlweiss
Formal verification of cryptographic-protocol designs and implementations

Mike O’Boyle
Compilers, Machine-learning-based compilation, Heterogeneous systems, Design space exploration

Myrto Arapinis
Provable security, including Verification of cryptographic protocols, Formal models, Protocol composition, Applied cryptography, Quantum cryptography with a particular interest in electronic voting

Ohad Kammar
Programming-language theory, Probabilistic programming, Meta programming, Category theory, Logic in Computer Science

Paul Jackson
Formal verification of hardware, software and cyber-physical systems, Interactive theorem proving

Perdita Stevens
Software engineering, Model-driven engineering

Peter Buneman
Query languages, Semistructured data, Data provenance

Rob van Glabbeek
Foundations of concurrency and distribution

Sam Lindley
Functional programming, Effect handlers, Behavioural types, Meta programming, Type inference, Expressiveness
University of Glasgow

Blair Archibald
modelling concurrent systems, parallel functional programming

Colin Perkins
protocol specifications and standards

Gerardo Aragon Camarasa
programming languages for robotics

Gul Calikli
software engineering and programming languages

Jeremy Singer
managed runtime systems

Jose Cano Reyes
hardware-software co-design, edge computing

Michele Sevegnani
concurrent modelling languages

Ornela Dardha
behavioural types, mechanised programming language theory

Paul Harvey
runtime systems, adaptability, autonomous networks

Quintin Cutts
programming language education

Simon Fowler
functional programming, concurrent programming, behavioural types, multi-tier programming

Simon Gay
behavioural types, quantum programming languages

Wim Vanderbauwhede
programming language approaches to security, compilation to hardware, low-carbon and sustainable computing
Heriot-Watt University

Radu Mardare
Logics for algebras and co-algebras, Quantitative algebraic reasoning, Approximation theories for systems, Reasoning about probabilistic and stochastic systems, Theories of bisimulation, Behavioural metrics, Metrics and topological approach to model theory
University of St Andrews

Adam Barwell
concurrency, parallelism, refactoring, behavioural types

Chris Brown
refactoring, energy-aware programming, parallel programming

Edwin Brady
dependent types, type-driven development, domain-specific languages, reasoning about effects

Ian Miguel
constraint modelling and solving

Olexandr Konovalov
programming language education, modelling

Özgür Akgün
domain-specific languages, constraint solutions, automated configuration

Ruth Hoffmann
domain-specific languages, models and symmetry reduction

Susmit Sarkar
formal architecture, memory consistency, compiler correctness

Tom Spink
compiler implementations, runtime systems, security
University of Stirling

Patrick Maier
parallel and distributed programming languages, parallel symbolic computation, parallel cost models
University of Strathclyde

Bob Atkey
formal analysis of programming languages via type theory, denotational semantics, and theorem provers
Clemens Kupke
Coalgebraic modelling of systems, Logical verification/model-checking, Fixpoint logics and their game-theoretic semantics, Logics for knowledge representation and databases, Automata theory

Conor McBride
dependent type theory, functional programming, effects and handlers, programming language design and metatheory, and the category theoretic underpinnings of all of the above

Fredrik Nordvall Forsberg
Dependent type theory, especially homotopy type theory, and its semantics and applications, Constructive mathematics, Categorical semantics of programming languages
Guillaume Allais
Type-driven programming, Correct-by-construction methodology, Proof automation, Generic programming, User experience of interactive compilers

Jan de Muijnck-Hughes
Applications of programming language theory and technologies (namely type systems, dependent types, and functional programming), to make systems more trustworthy

Ross Horne
Protocol verification (equivalence checking and privacy), Linked Data, Session Types and Proof Theory, Attack Trees, and Logic on Graphs
University of the West of Scotland

Paul Keir
compilers, heterogeneous systems, metaprogramming, functional programming











