PL Theory PhD Directory 2026–2027
A community-maintained list of professors working in programming language theory, organized by institution, to help prospective PhD students find potential advisors. Contributions and corrections are welcome — open a PR!
Inspired by and sourced from PLGradSchools, CSRankings, SPLI .
actively taking students
not taking students
unknown
Australia
Australian National University
Nisansala Yatapanage
software verification, formal methods, concurrency, rely/guarantee, separation logic, temporal logic
Peter Hoefner
formal methods, software verification, algebraic methods, concurrency and distributed systems
Tony Hosking
programming language runtimes, compilation, garbage collection, data storage and management
Trustworthy Systems @ UNSW
Application deadline: Multiple (check link)
Austria
IST Austria
Application deadline: January 8th
forsyte @ TU Wien
Application deadline: Multiple (check link)
Laura Kovács
automated reasoning, computer algebra, automated deduction, program verification, formal methods
Belgium
KU Leuven
Application deadline: Rolling (position-based)
Bart Jacobs
program logics, separation logic, program verification, language features for security and correctness, static analysis, type systems, concurrent programming, language semantics, theorem proving, proof assistants
Dominique Devriese
modal types, dependent types, type theory, functional programming, security, verified compilation, capabilities, formalized ISAs
Canada
CLG @ McGill University
Application deadline (multiple — click to expand)
- Fall (International): December 15th
- Fall (Domestic): February 15th
- Winter (International): August 1st
- Winter (Domestic): November 1st
Brigitte Pientka
type theory, dependent types, refinement types, automated reasoning, functional programming, logic programming, metaprogramming
Christophe Dubach
data-parallel language design and implementation, high-level code generation, optimization for parallel hardware (GPUs, FPGAs), advanced compiler optimization techniques, architecture design space exploration, machine learning
Université de Montréal
Application deadline (multiple — click to expand)
- Fall (International): February 1st
- Winter (International): September 1st
Stefan Monnier
type systems, Emacs, language semantics, functional programming, compilers, garbage collection
Marc Feeley
dynamic language implementation, parallel processing, functional programming, Scheme, Gambit, education in CS, computer architecture
Concordia University
Application deadline (multiple — click to expand)
- Fall (International): March 1st
- Fall (Domestic): July 1st
- Winter (International): July 1st
- Winter (Domestic): November 1st
- Summer (International): November 1st
- Summer (Domestic): March 1st
Joey Paquet
design and implementation of programming languages, context-aware computing, service-oriented computing, software engineering
Université du Québec à Montréal (UQAM)
Application deadline: Rolling
Simon Fraser University
Application deadline (multiple — click to expand)
- Fall: January 19th
- Spring: August 9th
SPL @ University of British Columbia
Application deadline: December 15th
Caroline Lemieux
program analysis, static analysis, program synthesis, property-based testing, formal methods
University of Regina
Joseph Eremondi
language semantics, dependent types, type theory, gradual typing, dependent pattern matching, type error diagnosis
ProSE @ University of Toronto
Application deadline: December 1st
Ningning Xie
type systems, language design, language implementation, algebraic effects, effect handlers, functional programming
PLG @ University of Waterloo
Application deadline (multiple — click to expand)
- Fall: December 1st
- Winter: June 1st
- Spring: October 1st
Ondrej Lhoták
program analysis, static analysis, compilers, object-oriented programming, Scala, call graph construction, points-to analysis
Yizhou Zhang
language design, compilers, formal verification, proof assistants, probabilistic programming, machine learning
Chile
Universidad de Chile
Matías Toro
gradual typing, differential privacy, security typing, linear types, type systems, formal verification, language semantics, language design
Éric Tanter
gradual typing, type systems, algebraic effects, security typing, language semantics, language design, functional programming, object-oriented programming, formal methods
Denmark
LogSem @ Aarhus University
Application deadline: Multiple (check link)
Amin Timany
type theory, formal methods, program verification, separation logic, proof assistants, distributed systems
Andreas Pavlogiannis
formal methods, algorithmic verification, automata theory, concurrency, static & dynamic program analysis, network diffusion, evolutionary graph theory, evolutionary game theory
Daniel Gratzer
modal types, type theory, category theory, program logic, denotational semantics, dependent types
Jaco van de Pol
formal methods, model checking, automated reasoning, concurrency, distributed systems, quantum computing, quantum programming
Lars Birkedal
type theory, program verification, separation logic, distributed systems, language semantics
Magnus Madsen
algebraic effects, program analysis, static analysis, compilers, language design, logic programming, concurrency
PLS @ IT University of Copenhagen
Application deadline: Rolling (position-based)
Rasmus Ejlers Møgelberg
type theory, language semantics, category theory, domain theory, type systems, algebraic effects
University of Copenhagen
Application deadline: Rolling (position-based)
Dmitriy Traytel
interactive theorem provers, automata theory, runtime verification, decision procedures, (co)induction, (co)recursion
Fritz Henglein
type systems, program analysis, functional programming, language semantics, type inference, program analysis
Martin Elsman
parallel programming, compilers, functional programming, language design, language implementation
Thomas P. Jensen
static analysis, abstract interpretation, type systems, information flow, security, program analysis, compiler verification
France
Aix-Marseille Université
Pierre Clairambault
language semantics, denotational semantics, linear logic, concurrency, dependent types
Ecole Normale Superieure
Albert Cohen
compilers, program analysis, optimization, computer architecture, hardware-software interface
Marc Pouzet
type systems, functional programming, language design, language implementation, language semantics
Xavier Rival
static analysis, abstract interpretation, shape analysis, program verification, compiler verification, probabilistic programming
INRIA
Application deadline: Rolling (position-base)
Matthieu Sozeau
type theory, dependent types, type systems, automated reasoning, proof assistants, interactive theorem provers, program verification, functional programming, metaprogramming
Xavier Leroy
algebraic effects, automated reasoning, static analysis, compilers, functional programming, concurrency
Yannick Zakowski
proof assistants, language semantics, compiler verification, concurrency, memory models, interactive theorem proving, Rocq
Germany
CISPA Helmholtz Center
Application deadline: Rolling (position-based)
Simon Oddershede Gregersen
type systems, program verification, separation logic, distributed systems, formal methods, interactive theorem provers
Karlsruhe Inst. of Technology
Sebastian Erdweg
static analysis, abstract interpretation, incremental computation, domain-specific languages, program analysis, soundness
Max Planck Society
Application deadline (multiple — click to expand)
- MPI-SWS: Dec 31 / Mar 31 / Jun 30 / Sep 30
- CS@Max Planck: Dec 15
- IMPRS-TRUST: Dec 31 / Jun 30
Catalin Hritcu
verified compilation, memory management, program verification, dependent types, language semantics, property-based testing, cryptography, information flow control analysis
Deepak Garg
security, privacy, type systems, information flow, separation logic, logic, incremental computation
Derek Dreyer
separation logic, type systems, Rust, memory models, concurrency, compiler verification, dependent types, language semantics, modularity
Georg Zetzsche
model checking, automated reasoning, concurrency, program verification, formal methods
Gilles Barthe
program verification, relational verification, security, cryptography, differential privacy, formal methods, logic
Viktor Vafeiadis
memory models, concurrency, separation logic, program verification, model checking, compiler verification, proof assistants, non-volatile memory, language semantics
RWTH Aachen University
Joost-Pieter Katoen
model checking, concurrency, probabilistic programming, formal methods, language semantics
Saarland University
Benjamin Lucien Kaminski
formal methods, program verification, program analysis, static analysis, concurrency, probabilistic programming
TU Braunschweig
Roland Meyer
formal verification, automata theory, concurrency, memory models, game theory, language semantics
PG @ TU Darmstadt
TU Kaiserslautern
University of Freiburg
Peter Thiemann
functional programming, type systems, type classes, session types, web programming, program generation, static analysis, language-based security
University of Tübingen
Jonathan Immanuel Brachthäuser
algebraic effects, effect handlers, effect systems, continuations, type systems
Klaus Ostermann
functional programming, type systems, program analysis, object-oriented programming, program transformation
Greece
University of Athens
Application deadline: Rolling (contact advisor directly)
Yannis Smaragdakis
type systems, program analysis, static analysis, compilers, memory management, domain specific languages, object-oriented programming, parallel programming, concurrency, distributed systems, formal methods
Hong Kong
TACO @ HKUST
Application deadline: December 1st
PL Group @ University of Hong Kong
Application deadline: December 1st
Japan
National Inst. of Informatics
University of Tokyo
Naoki Kobayashi
higher-order model checking, program verification, type systems, automated reasoning, security protocols, resource usage analysis
University of Tsukuba
Hiroshi Unno
refinement types, program verification, higher-order model checking, automated reasoning, temporal verification, termination analysis
Netherlands
Radboud University
PL Group @ TU Delft
Benedikt Ahrens
type theory, functional programming, language semantics, homotopy type theory, univalent foundations, category theory
Casper Bach
domain-specific languages, language design, metaprogramming, algebraic effects, language semantics
Utrecht University
VU Amsterdam
Poland
University of Wroclaw
Dariusz Biernacki
functional programming, language semantics, abstract machines, continuations, control effects, Curry-Howard isomorphism, program equivalence
Maciej Piróg
type theory, dependent types, automated reasoning, interactive theorem provers, program analysis
Portugal
Universidade de Lisboa
Application deadline (multiple — click to expand)
José Fragoso Santos
automated reasoning, program analysis, static analysis, program synthesis, logic programming, object-oriented programming, language-based security, formal methods
Vasco Thudichum Vasconcelos
concurrency, distributed systems, type systems, process calculi, specification and verification
Singapore
Nanyang Technological University
Application deadline (multiple — click to expand)
- Fall: January 31st
- Winter: July 31st
C.-H. Luke Ong
probabilistic programming, game semantics, higher-order model checking, lambda calculus, type theory, algorithmic game theory, categorical logic
Yong Kiam Tan
deductive verification, interactive theorem proving, automated reasoning, compilers, formalized mathematics, hybrid systems, security
PLSE @ National University of Singapore
Application deadline (multiple — click to expand)
- Fall: December 15th
- Winter: June 15th
Umang Mathur
concurrency, formal methods, hardware design, program analysis, automata theory, program synthesis, logic
South Korea
DGIST
Minseok Jeon
program analysis, program synthesis, domain specific languages, functional programming, object-oriented programming
Yoonseung Kim
formal methods, compilers, language design, object-oriented programming, distributed systems
Hanyang University
Woosuk Lee
program synthesis, program analysis, program repair, software engineering, compilers, security
KAIST
Korea University
Hakjoo Oh
static analysis, program verification, software testing, fuzzing, program repair, program synthesis, quantum programming
POSTECH
Seoul National University
Chung-Kil Hur
type theory, automated reasoning, interactive theorem provers, concurrency, program verification, probabilistic programming
State University of New York, Korea
Zhoulai Fu
security, program analysis, testing, program verification, machine-learning, abstract interpretation, scientific computing
Spain
IMDEA Software Institute
Application deadline: Rolling (position-based)
Sweden
Chalmers/GU
Andreas Abel
program verification, dependent types, type theory, functional programming, type systems, modal types, automated reasoning
Nils Anders Danielsson
dependent types, functional programming, proof assistants, interactive theorem provers, type theory, type systems, modal types, Agda
Uppsala University
Bengt Jonsson
formal methods, distributed systems, language semantics, program verification, concurrency, security
Tobias Wrigstad
memory management, type systems, security, data-race freedom, concurrency, garbage collection, verified compilation, nominal typing
Switzerland
EPFL
Application deadline: December 1st
Viktor Kuncak
automated reasoning, program verification, formal methods, program synthesis, proof assistants, parsing
ETH Zurich
Application deadline: Rolling (position-based)
Università della Svizzera italiana
Application deadline (multiple — click to expand)
- Fall: May 1st
- Spring: November 1st
United Kingdom
Heriot-Watt University
Andrew Ireland
automated reasoning, theorem proving, program verification, software safety, static analysis
Hans-Wolfgang Loidl
parallel programming, functional programming, language implementation, symbolic computation
James McKinna
dependent types, type theory, proof assistants, bidirectional transformations, lambda calculus, Agda
Jurriaan Hage
static analysis, type error diagnosis, functional programming, software analysis, testing
Marko Doko
foundations of mathematics, interactive theorem proving, program verification, formal methods, weak memory concurrency
Radu Mardare
logics for algebras and co-algebras, quantitative algebraic reasoning, approximation theories for systems, reasoning about probabilistic and stochastic systems, behavioural metrics
Rob Stewart
domain-specific languages, parallel programming, dataflow programming, FPGA languages, compiler verification
Imperial College London
Application deadline (multiple — click to expand)
- October 15th
- December 15th
- February 15th
- April 15th
Alastair F. Donaldson
formal methods, testing, parallel programming, compilers, concurrency, software verification, GPU programming, HPC
Azalea Raad
concurrency, language semantics, static analysis, weak memory models, program logic, formal methods
Nobuko Yoshida
type systems, type theory, session types, language semantics, information flow analysis, distributed systems, Hoare logic, concurrency
King's College London
Queen Mary University of London
Raymond Hu
distributed systems, type systems, session types, generics, refinement types, software verification
Royal Holloway Univ. of London
Julien Lange
type systems, program verification, session types, automata theory, static analysis, GPU program verification, distributed systems
Reuben N. S. Rowe
type systems, program verification, automated reasoning, separation logic, program synthesis, language design, concurrency
Theory Group @ University of Birmingham
University of Bristol
University of Cambridge
Application deadline: December 2nd (check link for more)
LFCS @ University of Edinburgh
Ajitha Rajan
software engineering, software testing, static analysis, robustness and interpretability of AI models
Björn Franke
compilers, JIT compilers, parallelisation, dynamic binary translation, processor simulation
Mike O'Boyle
compilers, machine-learning-based compilation, heterogeneous systems, design space exploration
Myrto Arapinis
provable security, verification of cryptographic protocols, formal models, applied cryptography, quantum cryptography, electronic voting
Ohad Kammar
programming-language theory, probabilistic programming, metaprogramming, category theory, logic in computer science
Paul Jackson
formal verification of hardware, software and cyber-physical systems, interactive theorem proving
Sam Lindley
functional programming, effect handlers, behavioural types, metaprogramming, type inference
University of Glasgow
H. Gül Çalikli
empirical software engineering, cognitive psychology, machine learning, software quality
Simon Fowler
functional programming, concurrent programming, behavioural types, multi-tier programming
Wim Vanderbauwhede
programming language approaches to security, compilation to hardware, low-carbon and sustainable computing
PLAS @ University of Kent
David Castro-Perez
interactive theorem provers, language design, language implementation, concurrency, distributed systems, parallel programming
FP Lab @ University of Nottingham
Graham Hutton
functional programming, program correctness, compiler calculation, monadic parsing, program reasoning
Thorsten Altenkirch
type theory, dependent types, functional programming, logic programming, category theory
University of Oxford
University of Sheffield
University of St Andrews
Edwin C. Brady
dependent types, type-driven development, domain-specific languages, reasoning about effects
University of Stirling
Patrick Maier
parallel and distributed programming languages, parallel symbolic computation, parallel cost models
MSP @ University of Strathclyde
Clemens Kupke
coalgebraic modelling of systems, logical verification, model-checking, fixpoint logics, game-theoretic semantics, automata theory
Conor McBride
dependent type theory, functional programming, effects and handlers, programming language design and metatheory, category theory
Fredrik Nordvall Forsberg
dependent type theory, homotopy type theory, constructive mathematics, categorical semantics of programming languages
Guillaume Allais
type-driven programming, correct-by-construction methodology, proof automation, generic programming
Jan de Muijnck-Hughes
applications of type systems, dependent types, and functional programming to make systems more trustworthy
Robert Atkey
formal analysis of programming languages, type theory, denotational semantics, theorem provers
University of the West of Scotland
United States
Binghamton University
Application deadline: Rolling
Boston College
Application deadline: January 2nd
Aaron Stump
type theory, dependent types, lambda encodings, automated reasoning, intuitionistic logic, functional programming
Boston University
Application deadline: December 15th
Marco Gaboardi
formal methods, differential privacy, refinement types, dependent types, type systems, sensitivity analysis
PLT @ Brown University
Application deadline: December 15th
POP @ Carnegie Mellon University
Heather Miller
distributed systems, concurrency, type systems, functional programming, eventual consistency, edge computing, serialization, Scala
Jan Hoffmann
model checking, type systems, static analysis, probabilistic programming, formal methods
Jonathan Aldrich
gradual typing, separation logic, static analysis, language design, object-oriented programming, formal methods
Stephanie Balzer
type systems, separation logic, functional programming, object-oriented programming, concurrency, language-based security
Umut A. Acar
formal methods, concurrency, parallel programming, quantum computing, self-adjusting computation, machine learning
PL @ Cornell University
Application deadline: December 15th
Adrian Sampson
computer architecture, hardware-software interface, approximate computing, compilers, hardware design
Alexandra Silva
category theory, automata theory, Kleene algebra, language semantics, formal verification, automata learning
Andrew C. Myers
type systems, compilers, functional programming, object-oriented programming, language-based security, formal methods, probabilistic programming
J. Gregory Morrisett
type systems, compilers, memory management, language-based security, formal methods
Sorin Lerner
program verification, security, privacy, HCI, live programming, program synthesis, automated theorem proving, machine learning for proofs, web security
Justin Hsu
type systems, dependent types, refinement types, formal methods, separation logic, program analysis, language design, functional programming, language-based security, probabilistic programming
Georgia Institute of Technology
Application deadline: December 15th
Santosh Pande
compilers, program analysis, static analysis, runtime analysis, hardware security, embedded systems
Harvard University
Application deadline: December 15th
Wonks @ Indiana University
Application deadline: December 15th
Amr Sabry
language semantics, continuations, monadic effects, staged computation, quantum computing, functional programming
Jeremy G. Siek
dependent types, gradual typing, proof assistants, compilers, domain specific languages, functional programming, metaprogramming, language semantics, language-based security
Sam Tobin-Hochstadt
gradual typing, type systems, program analysis, language design, functional programming, object-oriented programming, formal methods
PL @ Massachusetts Inst. of Technology
Application deadline: December 1st
Adam Chlipala
dependent types, program verification, automated reasoning, proof assistants, program analysis, compilers, language design, functional programming, concurrency
Armando Solar-Lezama
type systems, model checking, automated reasoning, program analysis, static analysis, program synthesis, compilers
Michael Carbin
program analysis, language design, functional programming, object-oriented programming, probabilistic programming
ACSys @ New York University
Application deadline: December 1st
Joseph Tassarotti
formal methods, separation logic, program synthesis, concurrency, distributed systems, probabilistic programming
Thomas Wies
type systems, model checking, automated reasoning, interactive theorem provers, separation logic, program analysis, static analysis, language design, functional programming, object-oriented programming, concurrency
PRL @ Northeastern University
Application deadline: December 15th
Amal Ahmed
type theory, type systems, dependent types, gradual typing, separation logic, compilers, language design, functional programming, object-oriented programming, concurrency, formal methods, probabilistic programming
Olin Shivers
compilers, programming language design, language semantics, systems programming, higher-order languages
Steven Holtzen
type systems, program verification, automated reasoning, separation logic, probabilistic programming
Northwestern University
Application deadline: December 1st
Christos Dimoulas
contracts, gradual typing, language-based security, functional programming, language semantics, program analysis
Ohio State University
Application deadline (multiple — click to expand)
- Fall: December 15th
- Spring: October 1st
Michael D. Bond
concurrency, memory models, garbage collection, program analysis, runtime systems, security, information flow control
PL @ Princeton University
Application deadline: December 15th
Zachary Kincaid
model checking, automated reasoning, program analysis, object-oriented programming, concurrency
PurPL @ Purdue University
Application deadline: December 1st
Suresh Jagannathan
type systems, program verification, language design, functional programming, object-oriented programming
Rice University
Application deadline: January 1st (Check link there's more)
Konstantinos Mamouras
stream processing, runtime verification, program semantics, Kleene algebra, logics for verification
Rutgers University
He Zhu
refinement types, model checking, static analysis, program synthesis, compilers, language design, functional programming
Santosh Nagarakatte
formal methods, program analysis, static analysis, compilers, memory management, language design, object-oriented programming, parallel programming, concurrency
Stanford University
Application deadline: December 2nd
Fredrik Kjolstad
compilers, language implementation, language design, parallel programming, concurrency
Stevens Institute of Technology
Michael Greenberg
gradual typing, static analysis, compilers, functional programming, formal methods
TUPL @ Tufts University
Jeffrey S. Foster
program analysis, static analysis, program synthesis, compilers, language-based security, formal methods
Univ. of California - Berkeley
Application deadline: December 1st
Univ. of California - Davis
Caleb Stanford
formal methods, distributed systems, security, regular expressions, dataflow programming, program verification
Univ. of California - Los Angeles
Application deadline: December 15th
Guoqing Harry Xu
static analysis, compilers, object-oriented programming, distributed systems, formal methods
Todd D. Millstein
type systems, program verification, automated reasoning, interactive theorem provers, property-based testing, probabilistic programming
Univ. of California - Riverside
ProgSys @ Univ. of California - San Diego
Application deadline: December 23rd
Deian Stefan
refinement types, program analysis, compilers, language implementation, language design, functional programming, language-based security, memory management
Loris D'Antoni
static analysis, program synthesis, compilers, language-based security, formal methods
Michael J. Coblenz
type systems, formal methods, static analysis, memory management, language design, functional programming, property-based testing
Nadia Polikarpova
refinement types, separation logic, program analysis, program synthesis, compilers, functional programming, object-oriented programming, language-based security, formal methods
Univ. of California - Santa Barbara
Application deadline: December 15th
Ben Hardekopf
program analysis, static analysis, formal verification, security, hardware design, CS education, language design
Yu Feng
program synthesis, type theory, constraint solving, formal verification, zero-knowledge proofs, compilers, smart contracts, security, program analysis
Univ. of California - Santa Cruz
Application deadline: January 5
Cormac Flanagan
refinement types, gradual typing, model checking, program analysis, language design, concurrency, language-based security, formal methods
Lindsey Kuper
distributed systems, choreographic programming, refinement types, dependent types, concurrency, causal consistency, formal verification, functional programming, Rust
Mohsen Lesani
distributed systems, program synthesis, formal verification, domain-specific languages, type systems, concurrency, memory models, RDMA, smart contracts, program analysis
Tyler Sorensen
heterogeneous architectures, memory models, operational semantics, axiomatic semantics, empirical testing, model checking, auto-tuning, domain-specific languages
Univ. of Illinois at Urbana-Champaign
Application deadline: December 15th
Talia Ringer
type theory, formal methods, automated reasoning, proof assistants, compilers, interactive theorem provers, dependent types, Rocq
PLUM @ Univ. of Maryland - College Park
Application deadline: December 5th
David Van Horn
gradual typing, automated reasoning, program analysis, static analysis, program synthesis, Racket
University at Buffalo
Application deadline (multiple — click to expand)
- For early consideration for special scholarships (Fall): December 10th
- For full consideration for funding/fellowships (Fall): December 31st
- International applications (Spring): September 30th
- Domestic applications (Spring): October 31st
University of Chicago
Application deadline: December 11
CUPLV @ University of Colorado Boulder
Application deadline: December 15th
Gowtham Kaki
dependent types, program synthesis, language design, domain specific languages, functional programming, concurrency, distributed systems
University of Connecticut
Application deadline: January 1st
CLC @ University of Iowa
Application deadline: January 1st
J. Garrett Morris
type systems, substructural types, qualified types, concurrency, records and variants
University of Massachusetts Lowell
Matteo Cimini
formal methods, type systems, gradual typing, interactive theorem provers, concurrency
MPLSE @ University of Michigan
Application deadline: December 15th
Max S. New
language semantics, gradual typing, interoperability, category theory, compiler intermediate languages
PLClub @ University of Pennsylvania
Application deadline: Decmeber 15th
Michael Hicks
security, fuzzing, property-based testing, domain-specific languages, quantum computing, compiler verification, Rust, information flow, type systems
Steve Zdancewic
linear types, automated reasoning, program synthesis, compilers, functional programming, type theory
University of Southern California
Application deadline: December 15th
Mukund Raghothaman
automated reasoning, program analysis, static analysis, program synthesis, domain specific languages
University of Texas at Austin
Application deadline: December 15th
CPU @ University of Utah
Application deadline: December 15th
PLSE @ University of Washington
Application deadline: December 15th
madPL @ University of Wisconsin - Madison
Application deadline: December 15th
Ethan Cecchetti
type theory, language-based security, information-control flow, choreographic programming, language design
Yale University
Application deadline: December 15th
Alexander K. Lew
probabilistic programming, differentiable programming, Bayesian inference, machine learning
Zhong Shao
program verification, compilers, language design, concurrency, language-based security, formal methods