Software shapes every aspect of our modern lives. The cost and quality of software crucially relies on the availability of powerful tools. These tools need to provide programmers with abstractions that elevate their productivity, that simplify code maintenance, that ensure code correctness, and that lead to dependable and sustainable software. All these aspects pose major scientific challenges and, at the same time, constitute an enterprise with huge societal relevance.
Formal methods, mathematically rigorous techniques for the specification, development, analysis, and verification of software and hardware, provide abstractions and tools that programmers need. Formal methods have never been more relevant: by providing certificates/proofs they make AI trustworthy, whereas AI has the potential to make formal methods cost effective.
Through compilation/code-generation technology we provide programmers with tools that elevate their productivity, simplify code maintenance, and provide high levels of performance across a wide spectrum of different architectures ranging from embedded devices all the way to high performance computing.
Software development is not just a technical but also a social process that involves people from diverse backgrounds and with varying needs, preferences, and expertise. Empirical research is essential to validate the methods and tools that we develop, and for understanding and improving software engineering.
Our mission is to conduct world-leading research on software systems, covering formal methods, compilation/code-generation technology, empirical analysis and tool construction. We aim to bridge the gap between theory and applications, and seek impact through publications, tools, applications, and people.
We find it important (and inspiring!) to cover the full spectrum from theory to applications in a single research group. Through collaboration with stakeholders from industry and society, we obtain a better understanding of when and how software science can help to solve real-world problems. Working together with our partners, using the Industry-as-Laboratory approach, also allows us to identify important new scientific challenges to work on. Some members of our group primarily focus on applications, other members focus on software tools, and a few just do theory. Our goal is always to have chains of collaboration all the way from theory to practical application.