We do experimental research on the development of new tools, languages, and methods for software development. Our ultimate goal is to find new ways of making software development more efficient. Example areas we work with include compilation of object-oriented languages, runtime systems, real-time and distributed programming, configuration management, internet-of-things, pervasive systems, metaprogramming tools, integrated development environments, domain-specific languages, agile methodology, software architecture and design.
We collaborate with industry and society to get realistic scenarios for application of new ideas. Example application areas include mobile devices, embedded systems, health care, industrial robotics, and control systems.