We acknowledge and are grateful for the continued sponsorship of SPLS by the Scottish Informatics and Computer Science Alliance (SICSA).
The University website has travel information on getting to St Andrews.
The talks will be held on the North Haugh, in the Purdie Building, lecture theatre D.
There is a channel, #spls-2026-02, set up on the SPLS Zulip chat service.
| Time | Speaker | Title |
|---|---|---|
| 11:30 – 12:30 | Lunch | |
| 12:30 – 13:30 | Shriram Krishnamurthi (Brown University) |
A Programming Language for Lightweight Diagramming
Formal modeling tools such as Alloy enable users to incrementally define, explore, verify, and diagnose specifications for complex systems. A critical component of these tools is a visualizer that lets users graphically explore generated models. However, a default visualizer that knows nothing about the domain can be unhelpful and can even actively violate presentational and cognitive principles. At the other extreme, full-blown custom visualization requires significant effort as well as knowledge that a tool user might not possess. Custom visualizations can also exhibit bad (even silent) failures. The same needs and demands apply to programming languages, which are virtually never accompanied by data structure visualizers.
|
| 13:30 – 14:00 | Coffee break | |
| 14:00 – 14:30 | Janis Bailitis (Heriot-Watt University) |
Structural Aspects of Banach Categories
Probabilistic programming languages (PPLs) are a useful tool for statistical modelling, and semantics of PPLs are a highly active field of research. In the literature, two main approaches to give semantics to PPLs have emerged: Semantics based on categories of linear operators and semantics based on categories of Markov kernels, where a Markov kernel is a generalisation of a stochastic matrix. Both approaches have its strengths and weaknesses, and its weaknesses are complementary. Addressing these weaknesses is, traditionally, both highly technical and subtle. |
| 14:30 – 15:00 | Zoe Stafford (Oxford University) |
Holes in elaborating Multimodal Dependent Type Theory
Elaboration allows users of dependently typed programming languages to avoid writing seemingly obvious types and terms and instead focus on the important details of their proofs and programs, so it's implemented in many major dependent type checkers. This talk explains the issues I encountered when extending a basic elaboration algorithm, based on Coquand's bidirectional type checking algorithm and unification, to Multimodal Dependent Type Theory — a type theory that extends Martin Löf Type Theory with modal operators that interact in interesting ways with variables and substitutions. |
| 15:00 – 15:30 | Greg Brown (University of Edinburgh) |
A Dependent Language with Type-Safe Program Extraction
Program extraction for dependently-typed languages such as Rocq often requires unsafe type casts. In this work I present some early ideas on a language called Extractly. To remove type-casts from extracted Extractly programs, we forbid large elimination of data types and rely on indexed data types (GADTs). Whilst nothing has yet been formalised, I present a "recipe" for removing large elimination which works for all examples I have found. This includes a metacircular interpreter for the simply-typed lambda calculus. |
| 15:30 – 16:00 | Coffee break | |
| 16:00 – 16:30 | Christopher Brown (University of St Andrews) |
East of Eden: Parallel Functional Programming in Idris
There have been various different attempts to introduce parallel programming models into functional languages, from very implicit approaches, such as the par and pseq model exhibited by GpH, to semi-explicit process models exhibited by the Haskell implementation, Eden, to very explicit actor-based models that use message passing and explicit process creation, such as Erlang. Implicit vs. explicit parallel models introduce important trade-offs to programmers. Explicit models give more control over the parallelism, but require much more low-level management (and often more expertise from the programmer); implicit approaches give less control over the parallelism (and therefore often require less parallel expertise) but offer more reasoning opportunities. However, to date, there has been little exploration to introduce implicit parallelism approaches to an emerging class of dependently typed programming languages.
|
| 16:30 – 17:00 | Anton Lorenzen (University of Edinburgh) |
Persistent Amortized Analysis, Operationally
Amortized analysis is a technique for proving a combined time bound for a batch of operations on a data structure, even if some of those operations are expensive.
|
| 17:00 – 17:30 | Vikraman Choudhury (University of Strathclyde) |
Semantics of Reversible Concurrency
What is the mathematical structure of debugging? Reversible debuggers allow programmers to record a linear trace of the program's execution, and then interactively step forwards or backwards in time. If the program is concurrent, however, there are interleaved events and causal dependencies between them, and the forward and backward steps need to respect this structure. In this talk, I will describe how this notion of causal-consistent reversibility in concurrent computation can be formalised using event structures. This is joint work with Ivan Lanese. |
| 17:30 – late | Dinner & pub: St Andrews Brewing Company | |