Our research is focussed on facilitating the development of correct and reliable software at scale through type systems, formal methods, program analysis, domain specific languages, and modern testing methodologies. This is becoming even more important with critical software increasingly being deployed not only in some specialised areas, but also in everyday applications. Moreover, concurrent and parallel software, which is notoriously hard to write, is becoming ubiquitous due to increased demand for computing power. Therefore, it is essential to reduce the cost of producing correct systems, both in terms of the skills necessary to do so, as well as the development time required. Software infrastructure developed by researchers in our group is used in industry as well as academia.
The scope of our research includes:
- Static analysis
- Testing & verification
- Type-directed programming
- Design and applications of domain specific languages
We typically use modern functional programming languages, such as Haskell and Agda, as a vehicle and subject of our research. We actively teach functional programming at BSc and MSc level, and organise an annual summer school on Advanced Functional Programming.
Selection of current projects:
If you're interested in working with us please contact us:
- Embedded languages, parallel computing, in particular in the context of functional programming
- Algorithms (e.g. AI-based) for automated software testing, automated program verification
- Dependently typed programming, datatype generic programming, program calculation
- Research software, scientific workflows, automated workflow composition
- Probabilistic programming
- Semantics-based static analysis, type error diagnosis
Since September 2018, the Center of Software Technology is headed by Gabriele Keller, who previously headed the Programming Language and Systems Group at University of New South Wales, Australia. Doaitse Swierstra, the former head of the center, gave his farewell oration in May 2013 after thirty years as professor in the Department of Information and Computing Sciences. Johan Jeuring, the head of the Software Technology for Learning and Teaching group at UU, was the acting head of the center between 2013 and 2018. We still collaborate closely.
A more detailed history of the people who have worked here and the software they developed can be found here.
See more information about our past projects.