Research Groups

We perform research in programming language technology (including ties to program analysis, type systems and transformation, compiler and  language design, high-performance computing, and meta-programming), and  in theory of computation (including ties to automata and computability theory, logic, term rewriting and lambda calculus, and reversible and quantum computing).

Much of our work involves topics in the intersection of programming  languages and theory (e.g., algorithmic aspects of programming and formal verification), and applications (e.g., computer security and privacy, systems, distributed ledger technology, and fintech).

Decentralized Systems

We research and develop foundations, technology and applications of efficient and secure networked/distributed computer systems controlled by multiple independent principals.  This includes blockchain and distributed ledger technology, event-driven architectures, large-scale transaction processing and analytics (Big Data), streaming and real-time data processing, domain-specific languages embodying domain knowledge and deep computer science techniques, digital and smart contract technology, and more.

Security & Privacy

We work primarily on software-based security and privacy preservation techniques and applications. Emerging research topics are quantum cryptography and compositional safety and security models for industrial systems. (More info about the group TBA)


We design and develop theoretical and practical aspects of advanced Higher-Order and Typed programming language technology. Examples include type-based analyses and domain specific languages. (More info about the group TBA)

Program Inversion and Reversible Computing

We study reversible computing with a focus on garbage-free computation models and design of programming languages in these. Relations to other areas include categorical models, IT-security, computer systems, and quantum computation. (More info about the group TBA)

Programming Language Theory and Technology

Our research covers theoretical and practical research of programming languages with a focus on automatic program optimization, analysis and transformation. (More info about the group TBA)

Theory of Computing

We conduct primarily theoretical research into the nature of computing. The aim is to prove universal results concerning the problems that can, and particularly, cannot be solved by computers or other computing devices. (More info about the group TBA)